Linux vim編輯器常見命令的使用

1.簡單說明一下vim


2.三種工作模式

1)普通模式

3)命令模式

在普通模式中,輸入【:/?】這三個中任何一個字符後,光標將移動到最低那一行,然後輸入你想要執行的命令,在命令模式下,用戶可以對文件進行一些高級處理。儘管普通模式下的命令可以完成很多功能,但要執行一些如字符串查找、替換、顯示行號等操作還是必須要進入命令模式。

注意:有些教程中稱有兩種工作模式,是把命令模式合併到普通模式。


3.工作模式切換:

字符 說明

q 退出不保存,這時會提示你是否保存。

q! 強行退出,不保存修改內容。

wq 保存並退出。

ZZ 保存並退出,相當於 wq。

:w /root/test.bak

注意:

2).如果不確定當前處於哪種模式,按兩次 Esc 鍵將回到普通模式。



4.移動光標

為了不影響文件內容,必須在普通模式(按兩次Esc鍵)下移動光標。使用下表中的命令每次可以移動一個字符:

命令 說明

k 向上移動光標(移動一行)

j 向下移動光標(移動一行)

h 向左移動光標(移動一個字符)

l 向右移動光標(移動一個字符)

注意:

1).vi 是區分大小寫的,輸入命令時注意不要鎖定大寫。

2).可以在命令前邊添加一個數字作為前綴,例如,2j 將光標向下移動兩行。

當然還有很多其他命令來移動光標,大概列一下:

命令 說明

0 或 | 將光標定位在一行的開頭。

$ 將光標定位在一行的末尾。

w 定位到下一個單詞。

b 定位到上一個單詞。

( 定位到一句話的開頭。

) 定位到一句話的結尾。

{ 移動到段落開頭。

} 移動到段落結束。

[[ 回到段落的開頭處。

]] 向前移到下一個段落的開頭處。

n| 移動到第 n 列(當前行)。

1G 移動到文件第一行。

G 移動到文件最後一行。

nG 移動到文件第 n 行。

:n 移動到文件第 n 行。

H 移動到屏幕頂部。

nH 移動到距離屏幕頂部第 n 行的位置。

M 移動到屏幕中間。

L 移動到屏幕底部。

nL 移動到距離屏幕底部第 n 行的位置。

:x x 代表一個數字,如5就移到第5行。


5.控制命令

有一些控制命令可以與 Ctrl 鍵組合使用,如下:

命令 說明

CTRL+d 向前滾動半屏

CTRL+f 向前滾動全屏

CTRL+u 向後滾動半屏

CTRL+b 向後滾動整屏

CTRL+e 向上滾動一行

CTRL+y 向下滾動一行

CTRL+I 刷新屏幕


6.刪除字符

命令 說明

x 刪除當前光標下的字符

X 刪除光標前面的字符

dw 刪除從當前光標到單詞結尾的字符

d^ 刪除從當前光標到行首的字符

d$ 刪除從當前光標到行尾的字符

D 刪除從當前光標到行尾的字符

dd 刪除當前光標所在的行

注:可以在命令前面添加一個數字前綴,表示重複操作的次數,例如,2x 表示連續兩次刪除光標下的字符,2dd 表示連續兩次刪除光標所在的行。


7.修改文本

命令 說明

r 替換當前光標下的字符。

R 從當前光標替換字符。


8.粘貼複製

命令 描述

yy 複製當前行

nyy 複製n行

yw 複製一個字(單詞)

nyw 複製n行

p 將複製的文本粘貼到光標後面

P 將複製的文本粘貼到光標前面


9.文本查找

如果希望進行全文件搜索,可以在普通模式(按兩次 Esc 鍵)下輸入 / 命令,這時狀態欄(最後一行)出現"/"並提示輸入要查找的字符串,回車即可。/ 命令是向下查找,如果希望向上查找,可以使用 ? 命令。這時,輸入 n 命令可以按相同的方向繼續查找,輸入 N 命令可以按相反的方向繼續查找。如果希望搜索某行中的單個字符,可以使用 f 或 F 命令,f 向上搜索,F 向下搜索,並且會把光標定位到匹配的字符。也可以使用 t 或 T 命令:t 命令向上搜索,並把光標定位到匹配字符的前面;T 命令向下搜索,並把光標定位到匹配字符的後面。搜索的字符串中可以包含一些有特殊含義的字符,如果希望搜索這些字符本身,需要在前面加反斜槓(\)。部分特殊字符列表如下:

字符 說明

^ 匹配一行的開頭

. 匹配一個字符

* 匹配0個或多個字符

$ 匹配一行的結尾

[ ] 匹配一組字符


10.set 命令

使用 set 命令需要進入命令模式。

命令 說明

:set ic 搜索時忽略大小寫。

:set ai 設置自動縮進(自動對齊)。

:set noai 取消自動縮進(自動對齊)。

:set nu 顯示行號。

:set sw 設置縮進空格數,如:set sw=4。

:set ws 循環搜索。

:set wm 設置自動換行,如:set wm=2 。

:set ro 將文件類型改為只讀。

:set term 輸出終端類型。

:set bf 忽略輸入控制字符,如 BEL等。


11.運行命令

切換到命令模式,再輸入 ! 命令即可運行 Linux 命令。

例如,保存文件前,如果希望查看該文件是否存在,那麼輸入

:! ls


12.文本替換

切換到命令模式,再輸入 s/ 命令即可對文本進行替換。語法為:

:s/search/replace/g

解釋:search 為檢索的文本,replace 為要替換的文本,g 表示全局替換。


13.高級命令

命令 說明

J 將當前行和下一行連接為一行

<< 將當前行左移一個單位

>> 將當前行右移一個單位

~ 改變當前字符的大小寫

^G Ctrl+G顯示當前文件名和狀態

U 撤銷對當前行所做的修改

u 撤銷上次操作,再次按 'u' 恢復

:f 以(%)形式顯示光標在文件中的狀態

:f filename 將文件重命名為 filename

:w filename 保存修改到 filename

:e filename 打開另一個 filename 的文件

:cd dirname 改變當前工作目錄到 dirname

:e # 在兩個打開的文件之間切換

:n 如果打開了多個文件, :n 切換到下一個

:p 如果打開了多個文件, :p 切換到上一個

:N 如果打開了多個文件, :N 切換到上一個

:r file 讀取文件並在當前行的後邊插入

:nr file 讀取文件並在第 n 行後邊插入


最後來一個演示,就是有這麼一個需求,我需要把文本中的一列進行復制並粘貼到行末尾另起一列。

比如現在我有一個文本是這樣的,我需要把每一行在host1這個位置的字符進行復制,並粘貼到行末另起一列:

Linux vim編輯器常見命令的使用

首先,我們將光標移到h這個字符這裡,如下:

Linux vim編輯器常見命令的使用

然後再普通模式下輸入組合鍵Ctrl + v 這時文本會變成這樣:

Linux vim編輯器常見命令的使用

然後將光標向下移到到最後一行,如下:

Linux vim編輯器常見命令的使用

然後將光標向右移動到4這一列,如下:

Linux vim編輯器常見命令的使用

這時,我們輸入字符y進行復制,此時光標選中的區域就會消失,如下:

Linux vim編輯器常見命令的使用

Linux vim編輯器常見命令的使用

Linux vim編輯器常見命令的使用

這時,我們輸入p字符進行粘貼,如下:

Linux vim編輯器常見命令的使用

最後,我們將文本保存並退出,如下:

Linux vim編輯器常見命令的使用



May you share freely, never taking more than you give.


都看到這裡,那就關注、評論、收藏、轉發一下唄!謝謝!


分享到:


相關文章: