Vim在Linux中是一個簡單卻又強大的文本編輯器,可以用來創建、編輯和查看一個文本。本文只是簡單介紹下,更多用法還得個人多使用練習才行。 Vim通常分為三種模式:命令模式:剛打開Vim時就預設進入命令模式,此時所有的鍵盤敲擊都會被識別為命令而不是字元輸入,而編輯器則處於等待用戶輸入命令的狀態。輸入 ...
Vim在Linux中是一個簡單卻又強大的文本編輯器,可以用來創建、編輯和查看一個文本。本文只是簡單介紹下,更多用法還得個人多使用練習才行。
Vim通常分為三種模式:
命令模式:剛打開Vim時就預設進入命令模式,此時所有的鍵盤敲擊都會被識別為命令而不是字元輸入,而編輯器則處於等待用戶輸入命令的狀態。
輸入模式:即插入模式,通常使用此模式來編輯文本,當按下Esc鍵時自動退出輸入模式,併進入命令模式。
底線命令模式:在命令模式中輸入冒號:就可以進入底線命令模式了,輸入命令後回車即可執行對應的命令並退出底線命令模式,當按下Esc鍵時也會自動退出底線命令模式,併進入命令模式。
命令模式中常用的命令有:
- a/A:a表示在游標所在字元後插入,A表示在游標所在行尾插入,此時進入輸入模式。
- i/I:i表示在游標所在字元前插入,I表示在游標所在行首插入,此時進入輸入模式。
- o/O:o表示在游標所在行下插入新行,O表示在游標所在行上插入新行,此時進入輸入模式。
- gg:定位到第一行。
- G:定位到最後一行。
- [n]G:表示定位到第n行,如先按下數字88(並不會在屏幕上顯示出來你的按鍵),再按下G就會跳轉到第88行,效果同底線命令模式的命令“:88”。
- $:游標移動至行尾。
- 0:游標移動至行首。
- x:刪除游標所在處的字元。
- [n]x:刪除游標所在處後的n個字元。
- dd:刪除(剪切)游標所在行。
- [n]dd:刪除(剪切)游標所在行及之後的共n行。
- dG:刪除游標所在行到文件末尾的所有內容。
- D:刪除游標所在處到文件末尾。
- yy:複製當前行。
- [n]yy:複製當前行及以下n行。
- p/P:粘貼在游標所在行的下麵或上面。
- r:替代游標所在處的字元。
- R:進入替換狀態,從游標所在處開始替換字元,按Esc結束。
- u:取消上一步操作。
- /[string]:搜索指定的字元串,然後回車,按n可以查看下一個搜索結果。但預設是區分大小寫的,想要不區分大小寫,需要執行一個底線命令模式的命令“:set ic”,反之,又想區分大小寫了,執行“:set noic”。
- ZZ:快捷鍵,保存修改並退出。
底線命令模式中常用的命令有(省略了冒號:):
- set nu:設置行號。
- set nonu:取消行號。
- [n]:定位到第n行,如“:50”表示定位到50行。
- [n1],[n2]d:刪除n1到n2行的所有內容。
- set [ic/noic]:不區分大小寫和區分大小寫。
- %s/[old]/[new]/[g/c]:在全文中將old字元串替換為指定的new字元串,g表示執行時不詢問,c表示執行時詢問。
- [n1],[n2]s/[old]/[new]/[g/c]:在指定範圍n1到n2行之間將old字元串替換為指定的new字元串,g表示執行時不詢問,c表示執行時詢問。
- w:保存修改。
- w newfilename:另存為指定文件。
- wq:保存修改並退出。
- q!:不保存修改並退出。
- wq!:保存修改並退出(文件所有者和root可使用),當修改了許可權為只讀的文件時,只使用:wq是不能保存的,這時候可以使用:wq!強行保存修改。
Vim更多技巧
最前面的冒號表示底線命令模式:
- :r [filename]:將其他文件的內容從游標所在處導入到本文件中。
- :![命令]:在不退出Vim的情況下執行命令。
- :r ![命令]:將一個命令的執行結果導入從游標所在處導入到本文件中。
- :[n1],[n2]s/^/#/g:連續多行註釋(即將所有行的行首都替換為#,^表示行首,其他語言的註釋同理替換即可)。
- :[n1],[n2]s/^#//g:取消多行的行首註釋(即將所有行的行首的#替換為空字元,^表示行首,其他語言的註釋同理替換即可)。