入坑!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 : 清屏
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。