vim是linux下vi操作的補充,支持方向鍵移動光標,關鍵字變色等功能,需要安裝。並且自帶教程,可以通過在終端中使用shell命令:vimtutor來查看vim教程。
vim三種模式
vim下有三種模式:
命令模式、編輯模式與末行模式,模式的轉換如圖:
命令模式下相關操作:
1.保存操作: ZZ
2.代碼格式化: gg=G(不過是會有兩個tab的距離)
3.光標移動:
上下左右:
方向鍵
H(左)J(下)K(上)L(右)
移動到光標所在行首部: 0
移動到光標所在行尾部: $(Shift + 4)
移動到文件首部: gg
移動到文件尾部: G
定位到某行: 行號 + G
當前行移動n行: n + 回車
4.刪除命令(其實是一個剪切操作):
刪除光標後的字符: x
刪除光標前的字符: X
刪除單詞: dw (需要保證光標在單詞的開頭,否則只能刪除光標後面的部分)
刪除該行光標前的部分: d0
刪除該行光標後的部分: D 或 d + $
刪除光標所在行: dd
刪除光標所在行及以下幾行: ndd
刪除光標所在行及以下所有行: d + G
5.撤銷與反撤銷:
撤銷: u
反撤銷: ctrl + r
6.複製粘貼與替換:
複製光標所在行: yy
複製光標所在行及其下多行: nyy
粘貼:
粘貼到光標下一行: p (小寫)
粘貼到光標上一行: P (大寫)
自由複製:
首先進入可視模式:v;
移動光標進行選中;
複製:y (刪除:d)
值得注意的是,這樣複製的內容,在粘貼時,p是粘貼到光標後面的位置,P是粘貼到光標前的位置。
替換(從光標蓋住位置開始):
**只覆蓋一次字符:**r
**覆蓋多次字符:**R
7.查找和查看man文檔:
查找字符串(從頭): / + 要查找的內容 (切換到下一個:n;切換到上一個:N)
查找字符串(從尾): ? + 要查找的內容
查找光標所在單詞: #
查看光標所在函數在man文檔中定義: 函數所在章節號 + K (大寫)
man文檔分了章節,可以通過man man查看到。
命令模式切換到編輯模式:
a:從光標後的位置開始插入字符
A:從光標行的末尾開始插入字符
i:從光標前的位置開始插入字符
I:從光標行的頭部開始插入字符
o:光標所在位置下創建一個空行,開始插入
O:光標所在位置上創建一個空行,開始插入
s:刪除光標覆蓋的字符後開始插入
S:刪除光標所在行的所有字符後開始插入
末行模式常用功能:
跳轉到某一行可以直接在末行模式下輸入行號;
幾種保存與退出的指令:
q! :退出不保存
wq、x:保存並退出
w:保存不退出
替換:
替換當前行的某個字符串(一個):s/舊字符串/新字符串
替換當前行的某個字符串(全部):s/舊字符串/新字符串/g
一定範圍內的替換: 起始行,終點行s/舊字符串/新字符串/g
當前文件內的替換: %s/舊字符串/新字符串/g
分屏:
在末行模式下如果是對當前程序進行分屏:
水平分屏: sp
垂直分屏:vsp
如果分屏的程序是其他文件,需要在命令後加文件名。
在終端中shell命令分屏:
水平: vi -o filename1 filename2 …
垂直: vi -O filename1 filename2 …
在屏幕間切換: Ctrl + ww
退出所有分屏:qall
保存退出所有分屏:wqall
末行模式下執行shell命令: ! + shell語句