vim的最常用的用法

1.剪切,複製,粘貼
用v選中文本之後:
y:複製
d:剪切
無v選中文本:
d$:剪切當前行光標所在的位置到行尾
d^:剪切當前行光標所在的位置到行首
dd:剪切一行
ndd:從光標所在行開始剪切N行
2.剪切1-10行到20行
:1,10 m 20


2光標移動--

1. 按屏幕移動
(1) 最常用的幾個命令如下:
Ctrl + f           // 向前(往行號大的方向移動)移動一屏,想來F代表Forward
Ctrl  + b           // 向後移動一屏,B的話應該是Before吧


當前屏幕首行:H
當前屏幕末行:L
當前屏幕中央:M


z.            // 把當前行移動到屏幕中央,不用回車,切記
fx       //往右移動到 x 字符上         
w,W //w:將光標右移一個字。光標停留在下一個字的字首位置




0:移到行首
$:得到行尾


3.字符串替換
:[range]s/{pattern}/{string}/[flags]
全詞匹配:
:%s/\<string1\>/string2/g (如果是string1=,則會替換,其他不會)
flags 有如下四個選項
c confirm,每次替換前詢問;
e error, 不顯示錯誤;
g globle,不詢問,整行替換。如果不加g選項,則只替換每行的第一個匹配到的字符串;
i ignore,忽略大小寫
這些選項可以合併使用,如cgi表示不區分大小寫,整行替換,替換前詢問
:%s/str1/str2/g   替換每一行中所有str1爲str2 常用!


:s/str1/str2/g 替換當前行所有str1爲str2


:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 爲 sky


4.快捷搜索:
如果要搜索,一般命令是:   ":/thisisaverylongword"
但是這樣輸入thisisaverylongword, 這個很長的單詞很難輸入, 所以有更簡單的辦法:
 把光標置於thisisaverylongword之上, 然後按*鍵,或者#鍵即可直接進行搜索.
 *鍵是向下搜索, #鍵是向上搜索.
5.同時查看多個文件,並同時顯示
vi file1 file2 file3
:n 切換到文件2 (n=next)
:e# 或 :N    切換回到剛纔編輯的文件 
vi file1 file2 file3
:n 切換到文件2 (n=next)
:N 切換到上一個文件
:e filaname (跳轉到指定文件,:ls列出當前打開的文件
在vim下
:sp 另外一個文件的路徑及文件名
vim  -o filename1 filename2  水平分割窗口


 vim  -O  filename1 filename2 垂直分割窗口
:e  file   不會分割窗口


 :sp  file  將會水平分割窗口
 :vsp  file  將會垂直分割窗口


6.在vim中執行shell命令
1.vim中執行shell命令,有以下幾種形式
1):!command不退出vim,
並執行shell命令command,將命令輸出顯示在vim的命令區域,不會改變當前編輯的文件的內容例如:!ls -l
:r !command將shell命令command的結果插入到當前行的下一行例如:r !date
 :1,3   !command    將文本中第一行到第三行的內容輸入到命令command中進行處理,
並將第一行到第三行的內容替換爲命令的執行結果
52 !bash,那麼會把第52行的內容也就是ls -l作爲命令執行,同時命令的輸出結果會替換第52行的內容,注意其中的區別。
2):!bash來啓動一個bash shell並執行命令,不需要退出vim,通過命令exit回到原先的編輯狀態


7.文件對比
1. 使用vim的比較模式打開兩個文件:
vim -d file1 file2

vimdiff file1 file2


2. 如果已經打開了文件file1,再打開另一個文件file2進行比較:
:vert diffsplit file2
如果沒有用vert命令,diffsplit則會分上下兩個窗口。


3. 如果已經用split方式打開了兩個文件file1,file2,又想比較兩文件的不同。
分別在兩個窗口裏面輸入命令:
:diffthis


4. 如果更改了某個窗口的內容,vim又沒有自動更新diff檢查,可以使用如下命令更新:
:diffupdate


5. 定位到不同點:
[c     跳到前一個不同點
]c     跳到後一個不同點


6. 在窗口間跳轉:
ctrl-w w    跳到下一個窗口
ctrl-w h    跳到左側窗口
ctrl-w l    跳到右側窗口
ctrl-w j    跳到下方的窗口
ctrl-w k    跳到上方的窗口


7. 合併文檔:
dp          將差異點的當前文檔內容應用到另一文檔(diff put)
do          將差異點的另一文檔的內容拷貝到當前文檔(diff get)


8. 上下文的展開和查看
比較和合並文件的時候經常需要結合上下文來確定最終要採取的操作。Vimdiff 缺省是會把不同之處上下各 6 行的文本都顯示出來以供參考。其他的相同的文本行被自動摺疊。如果希望修改缺省的上下文行數爲3行,可以這樣設置:
:set diffopt=context:3


zf   創建摺疊(使用數字表示創建有當前行到下多少行的摺疊,比如3j就創建包括4行的摺疊)
    zo   打開摺疊(l也可以打開摺疊)
    zc   關閉當前摺疊
    zm   關閉所有摺疊
    zr   打開所有摺疊
    zE   刪除所有摺疊
    zd   刪除當前摺疊
    za   若當前打開則關閉,若當前關閉則打開
    zj   到下一折疊的開始處
    zk   到上一折疊的末尾
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章