vim:模式化的編輯器。分為:輸入模式(插入模式);編輯模式(指令模式);末行模式。
輸入模式和編輯模式之間可以互相的轉換,編輯模式和末行模式可以互相的轉換,而末行模式轉換
到輸入模式不能直接轉換,隻能先轉換到編輯模式在轉換到輸入模式。
輸入模式轉換到編輯模式使用:ESC
編輯模式轉換到輸入模式使用:i或o或a或c
編輯模式轉換到末行模式使用::
末行模式轉換到編輯模式使用:ESC
使用vim編輯文本:
vim FILE
vim +n FILE 打開檔案的前n行
從編輯模式轉換到輸入模式可以使用:
i 在目前光标所在處插入
I 在目前光标所在的行首插入
a 在目前光标後插入
A 在目前光标所在行尾
<a target="_blank" href="http://blog.51cto.com/attachment/201202/142252955.jpg"></a>
O 在光标所在行的上方打開一個新行
<a target="_blank" href="http://blog.51cto.com/attachment/201202/142221579.jpg"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201202/142348689.jpg"></a>
儲存退出:在末行模式下
退出單個檔案時:wq
退出打開的所有檔案時:wqall
<a target="_blank" href="http://blog.51cto.com/attachment/201202/142118578.jpg"></a>
退出不儲存:在末行模式下
沒有對文本内容進行修改:q
修改了文本但是不儲存:q!
退出多個檔案: qall
退出多個檔案并且不儲存:qall!
在打開一個内容較多的文本時,光标的移動以及定位:在編輯模式下
光标的移動:
h:左 l:右 k:上 j下 在他們之間加上數字就是向某個方向移動多少位如:5h 即
光标向左移動5位
w:移動到下一個單詞的首部
e:移動到目前光标所在單詞的詞尾
b:移動到目前光标所在單詞的詞首
(:移動到前一句句首
):移動到後一句句首
{:移動到前一段的段首
}:移動到後一段的段位
$:跳轉到光标所在行的行尾
G:跳轉到最後一行,前面可以跟數字表示跳轉到第幾行如:5G 跳轉到第五行
1G:表示跳轉到首部
在打開多個檔案時并且将這多個檔案分屏顯示時,在這幾個螢幕之間跳轉時:在編輯模式下
Ctrl+f 往下翻一屏
Ctrl+b 往上翻一屏
Ctrl+d 往下翻半屏
Ctrl+u 往上翻半屏
當打開檔案對其内容進行修改時:在編輯模式下
c:修改目前光标所在的單詞
cc:辨別删除行,前面跟上數字表示删除幾行。如在編輯模式下輸入 3cc:表示删除三行
C:删除光标所在的行以後的内容
x:删除光标所在的單個字元,前面跟上數字表示删除多少個字元
X:删除光标前面的字元
dd:删除光标所在的一整行,前面跟上數字表示删除幾行,從光标所在的行開始算起
r:替換光标所在的單個字元
R:替換光标所在的一整行
對于複制、剪切、粘貼:在編輯模式下
y:複制
d:剪切
p:粘貼,當複制或剪切的内容為一整行時則粘貼在目前光标所在行的下方,若不為一整行
則粘貼在目前光标所在的字元後
P:粘貼,當複制或剪切的内容為一整行時則粘貼在目前光标所在行的上方,若不為一整行
則粘貼在目前光标所在的字元前
在複制或剪切時還可以使用可視化模式指令:在編輯模式下使用
v:代表按照字元選取
V:代表安裝行來選取
當打開一個内容較多的文本時,而我們要修改摸個特定的字元或段時,就用到了查找:在末行模式
下
/Keyword:查找Keyword
?Keyword:查找Keyword
在查找後需要進行修改,不需要将原有的内容删除在鍵入新的内容,我們可以直接使用替換指令:s
在末行模式下使用
s 參數
i:忽略大小寫
g:全部替換
1,$:指定替換的範圍為第一行到最後一行
.,$:目前行到最後一行
.,+8:目前到第八行
.,$-1:目前行到倒數第二行
%:全文搜尋
當修改文本内容修改錯誤或者不想修改時,可以使用撤銷指令:在編輯模式下
u:撤銷最近一次的的操作
ctrl+r:撤銷撤銷,即撤銷上一步的撤銷
打開多個檔案時:
prev 跳轉到上一個
next 跳轉到下一個
first 跳轉到第一個
last 跳轉到最後一個
分割視窗:
水準分割 ctrl+w s
垂直分割 ctrl+w v
切換到下個視窗 ctrl+w 方向箭頭
最上面一個 ctrl+w t
最下面一個 ctrl+w b
-o 水準分割多個檔案
-O 垂直分割
設定vim的工作屬性:在末行模式下
顯示行号: set nu
<a target="_blank" href="http://blog.51cto.com/attachment/201202/142430318.jpg"></a>
取消行号: set nonu
自動縮進: set ai(autoindent)
取消縮進: set noai
而這些的設定都是在目前的shell及其子shell下有作用,當shell結束時作用就不在存在,若要長久
的有用就可可以修改vim的配置檔案
在/etc/bimrc 控制的全體使用者的vim設定
在使用者家目錄 ~/.vimrc 控制的是使用者自己的vim的設定
當兩者發起相同設定的沖突時,其設定作用則依照影響範圍小的設定生效
本文轉自 向陽草米奇 51CTO部落格,原文連結:http://blog.51cto.com/grass51/775437,如需轉載請自行聯系原作者