願把每一件事做好
vim是一個模式化的編輯器,它一共有三種模式,編輯模式(指令模式)、輸入模式、末行模式。
三種模式之間的切換如下圖:
vim.png
從圖中可以看出,可以在編輯模式下可以随意切換到輸入模式和末行模式,而輸入模式和末行模式隻能切換回編輯模式(指令模式)。
編輯模式(指令模式):
當使用vim編輯檔案時預設是在編輯模式下,按zz可以從編輯模式下退出vim,編輯模式的操作如下:
Motion Command
j :光标向下移動,一次移動一行。
k:光标向上移動,一次移動一行。
h:光标向左移動。
l:光标向右移動。
w:将光标移至下一個單詞的詞首
e:将光标移至目前或下一個單詞的詞尾
b:将光标移至目前或前一個單詞的詞首
0:将光标移至行首(絕對行首)
^:将光标移至行首的第一個非空白字元
$:絕對行尾
G:将光标移至最後一行
gg:将光标移至第一行
Ctrl+f:向下翻一頁
Ctrl+b:向上翻一頁
Ctrl+d:向下翻半頁
Ctrl+u:向上翻半頁
數字+[motion] 可以實作更快捷的跳轉例如:
#h:光标向左移動#位
#j :光标向下移動#行
#k:光标向上移動#行
#l:光标向右移動#行
#w:自光标所在位置單詞起,向後移動到第#個單詞的詞首
#e:自光标所在位置單詞起,向後移動到第#個單詞的詞尾
#b:自光标所在位置單詞起,向前移動到第#個單詞的詞尾
#G:将光标移至第#行
Edit Command
i:在目前光标所在字元的前面,轉為輸入模式
a:在目前光标所在字元的後面,轉為輸入模式
o:在目前光标所在行的下方,建立一行,并轉為輸入模式
I:在目前光标所在行的行首,轉換為輸入模式
A:在目前光标所在行的行尾,轉換為輸入模式
O:在目前光标所在行的上方,建立一行,并轉為輸入模式
.:重複前一次編輯操作
x:删除光标處字元
r:替換光标處字元
R:替換模式,相當于windows的insert模式
dd:删除一行
yy:複制一行
p:将此前删除或者複制了的文字粘貼到目前光标上一行。
P:将此前删除或者複制了的文字粘貼到目前光标下一行。
c:同d指令,隻是删除後進入輸入模式。
u:撤銷上一次操作
Ctrl+r:撤銷上一次撤銷
v:可視化操作,按字元選取
V:可視化操作,按行選取
數字+[edit]+[motion] 可以實作更快捷的操作例如:
#x:删除自光标起向後第#個字元。
#dw:删除自光标起第#個單詞,光标位于第#+1個單詞詞首
#de:删除自光标起第#個單詞,光标位于第#個單詞詞尾
#db:删除光标所在單詞以及前#-1個單詞 共#個單詞
#dd:删除包括目前光标所在行在内的#行
#d$:删除光标至行尾的所有字元
#d^:删除光标至行首第一個非空白字元的所有字元
#d0:删除光标至絕對行首的所有字元
輸入模式 :
進入輸入模式就可以對檔案進行編輯,按ESC可以回退到編輯模式(指令模式)。
末行模式 :
在編輯模式下按:可以切換到末行模式,末行模式的操作如下:
General Command
:q 不儲存退出
:wq 儲存退出
:x 儲存退出
:q! 不儲存退出 強行
:w 儲存
:w 路徑 :将檔案另存到另一個檔案
:w! 強行儲存 (管理者)
:r 路徑 :把檔案讀入目前光标位置
:! COMMAND:可執行shell指令
:#:輸入行号,回車即可跳轉到第#行
:StartADD,EndADDd:删除從StartADD開始至EndADD的所有文字;d表示删除
:StartADD,EndADDw 路徑:把從StartADD開始至EndADD的所有文字另存到另一個檔案中去;w表示寫
其中,StartADD和EndADD可以被替換為下面幾種通配符
. :表示目前行
$ :表示最後一行
+#:向下的#行
$-1:倒數第二行
例如:.,$d 表示删除從目前行起到最後一行。.,+2d 表示删除包括目前行以及向下的兩行。
Search Command
/PATTREN:順序周遊
?PATTERN:倒序周遊
n:下一個比對項
N:上一個比對項
Replace Command
:StartADD,EndADDs @PATTERN@string@gi:表示查找從StartADD開始至EndADD中所有比對的項,并把它替換為string;g表示全部替換(預設隻替換第一次比對到的項),i表示忽略大小寫
可以把StartADD,EndADD替換為%,表示全文搜尋替換
Configuration Command
set nu :顯示行号
set nonu:取消行号顯示
set ic :顯示忽略或區分大小寫字元
set ai:設定自動縮進
set noai:取消設定自動縮進
set hlsearch:查找到的文本高亮顯示
set nohlsearch:取消高亮顯示查找到的文本
syntax on :文法高亮
上面的配置隻對目前打開的vim生效,關閉之後再此打開又恢複到原樣,如果想一直生效,可以去/etc/vimrc或者~/.vimrc(沒有可建立)檔案裡進行配置
打開檔案
打開一個檔案
vim +# :打開檔案,并定位光标于第#行。
vim + :打開檔案,并定位光标于最後一行。
vim + /PATTERN :打開檔案,并定位光标于第一次被PATTERN比對到的行的行首。這裡PATTERN指的是正規表達式。
打開多個檔案
vim [option] FILE1 FILE2 FILE3..
-o:水準分割顯示檔案
-O:垂直分割顯示檔案
Ctrl+w+方向鍵可在分屏模式下切換光标
如果不加參數打開多個檔案
在末行模式下可進行下列操作
:next 切換至下一個檔案
:prev 切換至前一個檔案
:last 切換至最後一個檔案
:first 切換至第一個檔案
:qa 全部退出
Ctrl+w+s: 水準拆分視窗顯示
Ctrl+w+v: 垂直拆分視窗顯示