我們常說:Linux中一切都是文件。因此使用文本編輯器編輯配置文件參數是一鍵非常重要的事情,而最為廣大用戶熟知的文本編輯器非vim莫屬;今天我們就來簡單了解一下vim文本編輯器的使用。
一、vi與vim
在學習vim的使用之前,我們需要介紹一下vi文本編輯器:
- 所有類UNIX系統都會內置vi文本編輯器;
- 很多軟件的編輯接口會調用vi,比如之前介紹過的 crontab ;
上述兩個特點造就了可以成為vi高級版的vim如今地位。vim與vi最大的不同在于其語法高亮功能,該點使其不僅是一個文本編輯器,更是程序開發工具。
二、vi的使用
- 讓vi或者vim如此受歡迎的主要原因,在于其三種模式:
-
一般模式
打開一個文件就進入該模式;該模式中可以移動光標、對文本進行 復制 粘貼 刪除 查找 等操作;
- 編輯模式
一般模式下,按a
,i
,o
鍵可以進入(a
鍵 與i
鍵分別是在光標后面一位和當前位置切換到編輯模式,而o
鍵則是在光標的下面再創建一個空行,此時可敲擊a
鍵進入編輯模式);該模式中可以對文件文本進行編輯,按Esc
鍵回到一般模式;
- 命令行模式
一般模式下,輸入以:
,/
,?
開頭的命令進入;該模式中光標在屏幕最下一行,可以輸入一些對文件操作的命令,按Esc
鍵回到一般模式;
ps:一般模式和編輯模式、一般模式和命令行模式之間可以互相切換,但是編輯模式和命令行模式之間無法互相切換。
- 一般模式和編輯模式常用快捷鍵
快捷鍵 | 說明 |
---|---|
h 、←
|
光標向左移動一個字符 |
j 、↓
|
光標向下移動一行 |
k 、↑
|
光標向上移動一行 |
l 、→
|
光標向右移動一個字符 |
Ctrl+f 、PageDown
|
向下翻頁 |
Ctrl+b 、PageUp
|
向上翻頁 |
0 、Home
|
光標移動到所在行最前字符 |
$ 、End
|
光標移動到所在行最后字符 |
G |
光標移動到該文件最后一行 |
gg |
光標移動到該文件第一行 |
X 、Backspace
|
刪除光標前一個字符 |
x 、Del
|
刪除光標后一個字符 |
[rownum]Enter |
光標向下移動 [rownum] 行 |
dd |
刪除(剪切)光標所在行 |
[rownum]dd |
刪除(剪切)從光標處開始的 [rownum] 行 |
yy |
復制光標所在行 |
[rownum]yy |
復制光標處開始的 [rownum] 行 |
n |
顯示搜索的下一個字符串 |
N |
顯示搜索的上一個字符串 |
u |
撤銷 |
. 、Ctrl+r
|
重復上一個操作 |
p |
粘貼前剪切或復制的內容 |
- 命令行模式常用命令
命令 | 說明 |
---|---|
:w |
保存 |
:q |
退出 |
:q! |
放棄修改強制退出 |
:wq! |
強制保存退出 |
:set nu |
顯示行號 |
:set nonu |
隱藏行號 |
:[rownum] |
跳轉到 [rownum] 行 |
:s/[str1]/[str2] |
將當前行第一個 [str1] 替換為 [str2] |
:s/[str1]/[str2]/g |
將當前行所有 [str1] 替換為 [str2] |
:%s/[str1]/[str2]/g |
將全文所有 [str1] 替換為 [str2] |
?[str] |
搜索 [str] |
/[str] |
反向搜索 [str] |
:set nu 顯示行號
三、vim的功能
- vim的保存文件、恢復與打開時的警告信息
當我們在使用vim編輯文件時,vim會把我們進行的操作保存在以編輯文件名加.swp命名的隱藏臨時文件中;
當遇到其他用戶在編輯同一個文件或者其他未知的原因導致vim崩潰后,我們可以使用這個臨時文件恢復之前進行的操作;
- 新建一個名為 xdltestvim.json 的文件,使用 Ctrl+z 快捷鍵使vim在后臺運行
vim xdltestvim.json
-
使用
ls -al
命令查看當前文件夾信息,可以看到名為 .xdltestvim.json.swp 隱藏臨時文件
-
當我們嘗試繼續編輯 xdltestvim.json 這個文件時,會出現提示:
并給出5個操作項:
操作項 | 說明 |
---|---|
[O]pen Read-Only |
只讀模式打開文件 |
[E]dit anyway |
正常模式打開,不使用之前臨時保存的操作,會改變之前的操作 |
[R]ecover |
恢復之前的操作,完成后需要手動刪除隱藏臨時文件 |
[Q]uit |
退出 |
[A]bort |
忽略,類似于 [Q]uit
|
根據給定的操作快捷鍵可進行對應的操作。
- 塊選擇
vim一般模式和編輯模式下可以使用快捷鍵進行文本的塊選擇:
-
v
字符選擇,選擇從按下v
開始到當前光標位置的字符:
-
V
行選擇,選擇從按下V
開始到當前光標位置的行:
-
Ctrl+v
矩形選擇,選擇從按下Ctrl+v
開始到當前光標位置所畫出矩形框內的字符:
文本選擇之后,可以使用之前介紹的 y
、d
、p
快捷鍵進行復制、刪除、粘貼。
- 多文件編輯
當我們想要把一個文件中的文本復制到另一個文件中時,就可以使用vim的多文件編輯功能;
命令 | 說明 |
---|---|
vim [file1] [file2] |
同時編輯文件 [file1] 和 [file2]
|
:files |
查看當前正在編輯的文件 |
:n |
切換到編輯下一個文件 |
:N |
切換到編輯上一個文件 |
:files 查看當前正在編輯的文件
- 多窗口功能
在vim命令行模式下使用:sp [filename]
命令在同時以多個窗口中打開多個文件;
多窗口功能常用快捷鍵:
快捷鍵 | 說明 |
---|---|
Ctrl+w j 、Ctrl+w ↓
|
切換到下一個窗口 |
Ctrl+w k 、Ctrl+w ↑
|
切換到上一個窗口 |
Ctrl+w q |
關閉下一個窗口,等同于先切換到下一個窗口再使用 :q 關閉 |
- vim常用命令示意圖
圖片轉自 deniro_li 的CSDN文章 vim 常用指令操作示意圖