Linux編輯器Vim常用命令講解

九派Linux發表於2020-08-08

在上一節中,我們基本瞭解到了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退出編輯狀態:

image

  • 我們想要在numbern字母前面插入字元,游標挪到n,然後按下小寫i,輸入想要插入的字元:

image

  • 如果我們想在游標所在行的行尾插入字元,按下大寫A,按下之後大家可以看到游標自動跳到行尾:

image

  • 如果我們想在游標所在行的上面一行插入字元,按下大寫的O,按下之後,自動在上面多出空白的一行:

image

剩下的命令oI也是同理操作。

二、定位命令(1)
命令 作用
h 或 方向左鍵 左移一個字元
j 或 方向下鍵 下移一行
k 或 方向上鍵 上移一行
l或方向右鍵 右移一個字元
$ 移至行尾
0 移至行首
H 移至螢幕上端
M 移至螢幕中央
L 移至螢幕下端

以上幾個定位命令,大家可以在學習環境中一個個對應嘗試一下。

三、定位命令(2)
命令 作用
:set nu 設定行號
:set nonu 取消行號
gg 到第一行
G 到最後一行
nG 到第n行
:n 到第n行
  • 第一個命令我們在上一節有提到過,用來設定顯示行號

    $ :set nu

image

輸入命令回車之後,在每一行的最開始就顯示了行數。相反如要取消顯示,輸入 :set nonu 即可。

  • 敲下鍵盤的大寫 G,快速跳轉到檔案的最後一行:

image

可以看到,游標現在處於最後一行的行首,這個檔案總共有11474行。

  • 比如現在我想快速到達第597行,如果使用方向箭去逐一跳行,還不知道要什麼時候才能到達這一行,這個時候我們可以執行:

    $ :597

回車之後,立馬就快速定位到597行了。

image

四、刪除命令
命令 作用
x 刪除游標所在處字元
nx 刪除游標所在處後n個字元
dd 刪除游標所在行,ndd刪除n行
dG 刪除游標所在行到末尾的內容
D 刪除從游標所在處到行尾
:n1,,n2d 刪除指定範圍的行
  • 比如第666行我需要刪除字元9,只需要將游標定位到所需要刪除的位置,按下小寫x即可:

image

本來是99,刪除之後只有一個9了。

  • 比如現在要刪除685行到686行的內容:

    $ :685,686d

image

五、複製和剪下命令
命令 作用
yy、Y 複製當前行
nyy、nY 複製當前行以下n行
dd 剪下當前行
ndd 剪下當前行以下n行
p、P 貼上在當前游標所在行下或上
  • 比如我想複製第四行的內容,然則貼上到第5行的下面以及第13行的上面,首先我們先看下操作之前的內容:

image

首先我們把游標移動到第4行,然後按下大寫字母Y或者按兩下小寫字母y,然後游標再移動到第5行,按下小寫p,這樣就貼上在原第5行的下面一行了;然後游標再移動到第13行,按下大寫P,這樣就貼上在第13行的上面一行了:

image

六、替換和取消命令
命令 作用
r 取代游標所在處字元
R 從游標所在處開始替換字元,按Esc結束
u 取消上一步操作
  • 比如我們發現第四行的Network單詞的字母N錯了需要修改,我們可以按i進入插入模式,刪除這個字元然後再輸入新的字元,但是完全沒有必要這麼麻煩。我們可以直接將游標移到要修改的字元位置,按一下r,然後輸入我們想要修改的字元即可。
七、搜尋和替換命令
命令 作用
/string 向前搜尋指定字串;搜尋時忽略大小寫:set ic
n 搜尋指定字串的下一個出現的位置
:%s/old/new/g 全文替換指定字串
:n1,n2s/old/new/g 在指定行範圍內替換指定字串
  • 比如我們要搜尋與tcp相關的地方,輸入以下命令:

$ /tcp

回車之後,游標會自動定位到第一個搜尋到tcp的位置:

image

這個時候再鍵入字母n,游標會定位到下一個包含tcp的位置。

  • 比如我們要把檔案中所有tcp的字元替換成為ftp,輸入如下命令:

$ :%s/tcp/ftp/g

按回車執行完成之後,大家可以注意到原本tcp的字串全部變成了ftp,我們執行/tcp查詢,發現已經找不到任何tcp相關的結果了:

image

關於Vim的講解就到這裡了,當然對於Vim的命令不僅僅是這些,我們首先掌握好以上7種Vim常用基礎命令,在我們日常的工作過程中就可以正常的使用Vim編輯器了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章