在上一節中,我們基本瞭解到了Linux系統中的文字編輯Vim,也知道如何去使用vim,其實這個時候我們已經可以去使用vim了,但是如果我們想要提高使用vim的效率,還需要掌握vim的幾組常用命令。
一、插入命令
插入命令在上一節已經有簡單提到過,它總共有3組、6個命令,我們再來回顧一下:
命令 | 作用 |
---|---|
a | 在游標後附加文字 |
A | 在本行行末附加文字 |
i | 在游標前插入文字 |
I | 在本行開始插入文字 |
o | 在游標下一行插入新行 |
O | 在廣告上一行插入新行 |
為了方便演示,我先把/etc/services
檔案複製到我的test
目錄中,這裡我們用到之前學到的cp
命令:
$ cp /etc/services test.services
複製過來之後,我們使用vi
命令進入檔案編輯:
$ vi test.services
輸入命令回車進入之後,我們可以看到有一個閃爍的游標,我們可以使用方向鍵來移動我們的游標。
- 比如我們將游標移動到下圖中
e
字母的位置,然後在這個字母后面插入一些文字,可以按下小寫a
,然後輸入想要插入的字元,輸入完成之後按Esc
退出編輯狀態:
- 我們想要在
number
的n
字母前面插入字元,游標挪到n
,然後按下小寫i
,輸入想要插入的字元:
- 如果我們想在游標所在行的行尾插入字元,按下大寫
A
,按下之後大家可以看到游標自動跳到行尾:
- 如果我們想在游標所在行的上面一行插入字元,按下大寫的
O
,按下之後,自動在上面多出空白的一行:
剩下的命令o
、I
也是同理操作。
二、定位命令(1)
命令 | 作用 |
---|---|
h 或 方向左鍵 | 左移一個字元 |
j 或 方向下鍵 | 下移一行 |
k 或 方向上鍵 | 上移一行 |
l或方向右鍵 | 右移一個字元 |
$ | 移至行尾 |
0 | 移至行首 |
H | 移至螢幕上端 |
M | 移至螢幕中央 |
L | 移至螢幕下端 |
以上幾個定位命令,大家可以在學習環境中一個個對應嘗試一下。
三、定位命令(2)
命令 | 作用 |
---|---|
:set nu | 設定行號 |
:set nonu | 取消行號 |
gg | 到第一行 |
G | 到最後一行 |
nG | 到第n行 |
:n | 到第n行 |
- 第一個命令我們在上一節有提到過,用來設定顯示行號
$ :set nu
輸入命令回車之後,在每一行的最開始就顯示了行數。相反如要取消顯示,輸入 :set nonu
即可。
- 敲下鍵盤的大寫
G
,快速跳轉到檔案的最後一行:
可以看到,游標現在處於最後一行的行首,這個檔案總共有11474行。
- 比如現在我想快速到達第597行,如果使用方向箭去逐一跳行,還不知道要什麼時候才能到達這一行,這個時候我們可以執行:
$ :597
回車之後,立馬就快速定位到597行了。
四、刪除命令
命令 | 作用 |
---|---|
x | 刪除游標所在處字元 |
nx | 刪除游標所在處後n個字元 |
dd | 刪除游標所在行,ndd刪除n行 |
dG | 刪除游標所在行到末尾的內容 |
D | 刪除從游標所在處到行尾 |
:n1,,n2d | 刪除指定範圍的行 |
- 比如第666行我需要刪除字元
9
,只需要將游標定位到所需要刪除的位置,按下小寫x
即可:
本來是99
,刪除之後只有一個9
了。
- 比如現在要刪除685行到686行的內容:
$ :685,686d
五、複製和剪下命令
命令 | 作用 |
---|---|
yy、Y | 複製當前行 |
nyy、nY | 複製當前行以下n行 |
dd | 剪下當前行 |
ndd | 剪下當前行以下n行 |
p、P | 貼上在當前游標所在行下或上 |
- 比如我想複製第四行的內容,然則貼上到第5行的下面以及第13行的上面,首先我們先看下操作之前的內容:
首先我們把游標移動到第4行,然後按下大寫字母Y
或者按兩下小寫字母y
,然後游標再移動到第5行,按下小寫p
,這樣就貼上在原第5行的下面一行了;然後游標再移動到第13行,按下大寫P
,這樣就貼上在第13行的上面一行了:
六、替換和取消命令
命令 | 作用 |
---|---|
r | 取代游標所在處字元 |
R | 從游標所在處開始替換字元,按Esc結束 |
u | 取消上一步操作 |
- 比如我們發現第四行的
Network
單詞的字母N
錯了需要修改,我們可以按i
進入插入模式,刪除這個字元然後再輸入新的字元,但是完全沒有必要這麼麻煩。我們可以直接將游標移到要修改的字元位置,按一下r
,然後輸入我們想要修改的字元即可。
七、搜尋和替換命令
命令 | 作用 |
---|---|
/string | 向前搜尋指定字串;搜尋時忽略大小寫:set ic |
n | 搜尋指定字串的下一個出現的位置 |
:%s/old/new/g | 全文替換指定字串 |
:n1,n2s/old/new/g | 在指定行範圍內替換指定字串 |
- 比如我們要搜尋與
tcp
相關的地方,輸入以下命令:
$ /tcp
回車之後,游標會自動定位到第一個搜尋到tcp
的位置:
這個時候再鍵入字母n
,游標會定位到下一個包含tcp
的位置。
- 比如我們要把檔案中所有
tcp
的字元替換成為ftp
,輸入如下命令:
$ :%s/tcp/ftp/g
按回車執行完成之後,大家可以注意到原本tcp
的字串全部變成了ftp
,我們執行/tcp
查詢,發現已經找不到任何tcp
相關的結果了:
關於Vim的講解就到這裡了,當然對於Vim的命令不僅僅是這些,我們首先掌握好以上7種Vim常用基礎命令,在我們日常的工作過程中就可以正常的使用Vim編輯器了。
本作品採用《CC 協議》,轉載必須註明作者和本文連結