天天看點

入坑!VIM編輯器(最強整理版)

VIM的三種模式

入坑!VIM編輯器(最強整理版)

VIM 小抄圖

入坑!VIM編輯器(最強整理版)

vim小抄.png

VIM具體操作

進入vi的指令

vi filename :打開或建立檔案,并将光标置于第一行首 
vi +n filename :打開檔案,并将光标置于第n行首 
vi + filename :打開檔案,并将光标置于最後一行首 
vi +/pattern filename:打開檔案,并将光标置于第一個與pattern比對的串處 
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢複filename 
vi filename....filename :打開多個檔案,依次進行編輯  
           

移動光标指令

  • 操作在指令模式下
j  或下箭頭 向下移動一行
k  或上箭頭 向上移動一行
h  或左箭頭 左移一個字元
l  或右箭頭 右移一個字元
w  右移一個詞
W  右移一個以空格分隔的詞 
b  左移一個詞
B  左移一個以空格分隔的詞
0  移到行首
Ctrl-F  向前翻頁
Ctrl-B  向後翻頁
nG  到第n行
G  到最後一行
           

插入文本指令

i  在目前字元前插入文本   
I  在行首插入文本       
a  在目前字元後添加文本   
A  在行末添加文本      
o  在目前行後面插入一空行  
O  在目前行前面插入一空行  
R  以改寫方式輸入文本
           

替換文本

$     到行尾
(     到句子的開頭 
)     到句子的末尾
{     到段落的開頭
}     到段落的末尾
           

文本操作

  • 在指令模式下
r   替換一個字元
c   修改文本直到按下Esc健 
cw  修改下一個詞
cnw  修改接下來的n個詞
           

删除操作

x     删除光标處的單個字元 
dd    删除光标所在行 
dw    删除目前字元到單詞尾(包括空格)的所有字元 
de    删除目前字元到單詞尾(不包括單詞尾部的空格)的所有字元 
d$    删除目前字元到行尾的所有字元 
d^    删除目前字元到行首的所有字元 
J     删除光标所在行行尾的換行符,相當于合并目前行和下一行的内容
           

文本編輯

yy 将一行文本移到預設緩沖區中 
yn 将下一個詞移到預設緩沖區中
ynw 将後面的n個詞移到預設緩沖區中
p  如果預設緩沖區中包含一行文本,則在目前    
  行後面插入一個空行井将預設緩沖區中的聲    
  容粘貼到這一行中;如果預設緩沖區中包含    
  多個詞,把這些詞粘貼到光标的右邊.     

P  如果預設緩沖區中包含一行文本,則正目前     
  行前面插入一個空行井将預設緩沖區中的内     
  容粘貼到這一行中;如果預設緩沖區中包含    
  多個詞,把這些詞粘貼到光标的左邊. 
           

儲存退出

zz          儲存并退出(在指令行模式下)

在末行模式下:
:w filename     寫入檔案
:W          寫入檔案
:x          儲存(如果目前檔案修改過)并退出 
:q!         不儲存檔案,直接退出(強制退出)
:q         退出vi
           

編輯模式的編輯鍵操作

方向鍵進行上下左右方向的光标移動 
Home快速定位光标到行首
End快速定位光标到行尾
PageUp進行文本的向上翻頁 
PageDown進行文本的向下翻頁
Backspace删除光标左側的字元
Del删除光标位置的字元
           

替換操作

  • 在末行模式下
:s/old/new        将目前行中查找到的第一個字元“old” 串替換為“new”

:s/old/new/g      将目前行中查找到的所有字元串“old” 替換為“new”

:#,#s/old/new/g   在行号“#,#”範圍内替換所有的字元串“old”為“new”

:%s/old/new/g     在整個檔案範圍内替換所有的字元串“old”為“new”

:s/old/new/c      在替換指令末尾加入c指令,将對每個替換動作提示使用者進行确認
           

撤消操作

u           取消最近一次的操作,并恢複操作結果,可以多次使用u指令恢複已進行的多步操作 

U           取消對目前行進行的所有操作 

Ctrl + r    對使用u指令撤銷的操作進行恢複  
           

複制與粘貼操作

yy    複制目前行整行的内容到vi緩沖區 

yw    複制目前光标到單詞尾字元的内容到vi緩沖區 

y$    複制目前光标到行尾的内容到vi緩沖區 

y^    複制目前光标到行首的内容到vi緩沖區

p    讀取vi緩沖區中的内容,并粘貼到光标目前的位置(不覆寫檔案已有的内容)
           

字元串查找操作

/word    從上而下在檔案中查找字元串“word” 

?word    從下而上在檔案中查找字元串“word”

n        定位下一個比對的被查找字元串 

N        定位上一個比對的被查找字元串
           

快捷鍵

ctrl-a : 把光标移動到指令行最開始的地方。 
ctrl-e : 把光标移動到指令行末尾。 
ctrl-u : 清除指令行中光标所處位置之前的所有字元。 
ctrl-k : 清除從提示符所在位置到行末尾之間的字元
ctrl-w : 清除左邊的字段 
ctrl-y : 将會貼上被ctrl-u 或者 ctrl-k 或者 ctrl-w清除的部分。 
ctrl-r : 将自動在指令曆史緩存中增量搜尋後面入的字元。 
tab :    指令行自動補全-自動補全目前的指令行。如果啟用自動補全腳本指令參數和選項也可以自動補齊。

ctrl-l : 清屏