本文從實用的角度聊聊Vim的常用命令。何為實用?我舉個不實用的例子大家就明白了,用vim寫代碼。;)
“vim是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統用戶最喜歡的文本編輯器。”? ?——摘自百度百科
vim功能強大,但很多人寫代碼都不用,因為有更好的編輯代碼的軟件(時代進步了)。但盡管如此,依然無法掩飾vim編輯器在某些領域用處不凡,有很多配置文件用vim編輯我感覺非他莫屬,下面來聊一聊vim的使用。重點講解復制一段文本、粘貼文本、刪除行、查找字符串等這些常用的操作。
vim是vi的增強版本,在終端輸入vim命令后面加上文件名即可打開文件,例如:
vim test.txt
當然文件也可以是加路徑的,沒問題。如果目標文件存在,則vim打開該文件,若目標文件不存在,則新建該文件。這一點上比較人性化,不錯。當你打開一個文件就會有下面的界面,如下圖!
其中打開文件還有幾種常用的方式:
vim -R test.txt
vim 加-R,這代表以只讀的模式打開文本。如果打開文本想直接定位到某行,可以如下操作:
vim test.txt +10
這代表打開test.txt文本同時定位到第10行的位置。
當你剛打開這個編輯器的時候發現當前狀態是無法輸入的,只可以移動光標。因為vim擁有三種模式:命令模式、插入模式和ex模式。剛打開的時候的模式為命令模式,在這個狀態下,無法輸入,在命令模式中按“i”鍵可以進入到插入模式,在這個插入模式下才進行文本輸入。在插入模式中按esc可以返回命令模式。在命令模式中按“:”可以進入ex模式,在ex模式中可以保存、修改和退出。下面列一下命令模式和插入模式和ex模式的操作。首先說一句,任何模式都可以通過esc鍵回到命令模式。
命令模式:通常用于文本操作,例如復制粘貼一類。
i:在光標前插入文本。
o:在當前行的下面插入新行。
dd:刪除正行。
u:撤銷上一個操作。
y:復制選中文本。
yy :復制當前行。
n+yy:n是數字,例如,先按5,接著按yy,則是將5行內容復制。
v:進入可視模式,進入可視模式后,通過上下左右可以選出文本,之后通過y進行復制。
V:選擇當前行,通過j和k進行多行選擇,之后通過y進行復制。
p:粘貼。
r:替換當前關鍵字。
/ :查找關鍵字,輸入/ 后面加上想查找的字符串后回車,通過n或N,會切換上一個匹配項或下一個匹配項。
?:查找字符串,和上面的“/”查找正好相反,使用方式和上面的相同,但是查找的是上一個匹配項,n或N也和上面的命令相反,n會跳到上一個匹配項,N會跳到下一個匹配項。
插入模式:
命令模式下輸入“i”進入該模式,這個模式非常之簡單,因為插入模式就是輸入文本。如果要對文本進行粘貼操作等等,剛才我們說過按esc回到命令模式。
EX模式
:w 保存當前修改。
:q 退出。
:q! 強制退出。
:x 保存并退出。
:set number 顯示行號。(可以簡寫為:set nu)
:! 執行一個系統命令并顯示結果。例如,:!ls,ls是系統命令。
:sh 切換到終端命令行,使用ctrl+d切換回vim。
:set nohls 搜索時會有高亮字,該命令用于去除高亮字背景。
:set hls 重啟搜索時的高亮字。
現在來欣賞一下吧,用vim編輯器編寫的在程序界經典到不容錯過的helloworld程序。