編輯器-vi、vim的使用
- 2019 年 10 月 28 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/weixin_36670529/article/details/102725322
目錄
1、vi簡介
2、vi工作模式
2.1、命令模式
2.2、編輯模式
2.3、末行模式
3、vi基本操縱
3.1、進入編輯模式
3.2、移動游標
3.3、刪除命令
3.4、撤銷命令
3.5、重複命令
3.6、複製粘貼
3.7、選擇文本
3.8、查找替換
1、vi簡介
vi編輯器是Linux和Unix上最基本的文本編輯器,工作在字元模式下。由於不需要圖形介面,vi是效率很高的文本編輯器。儘管在Linux上也有很多圖形介面的編輯器可用,但vi在系統和伺服器管理中的功能是那些圖形編輯器所無法比擬的。
vi編輯器通常被簡稱為vi,而vi又是「Visual interface」的簡稱。它在Linux上的地位就像Edit程式在DOS上一樣。它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行訂製,這是其他編輯程式所沒有的。
vi 編輯器並不是一個排版程式,它不像Word或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程式。沒有菜單,只有命令,且命令繁多。vi有3種基本工作模式:命令行模式、文本輸入模式和末行模式。
Vim是vi的加強版,比vi更容易使用。vi的命令幾乎全部都可以在vim上使用。
2、vi工作模式
vi有三種基本工作模式:命令模式、文本輸入模式、末行模式。

vi 工作模式
2.1、命令模式
任何時候,不管用戶處於何種模式,只要按一下ESC鍵,即可使Vi進入命令模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。在該模式下,用戶可以輸入各種合法的Vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字元都被當做編輯命令來解釋,若輸入的字元是合法的Vi命令,則Vi在接受用戶命令之後完成相應的動作。但需注意的是,所輸入的命令並不在螢幕上顯示出來。若輸入的字元不是Vi的合法命令,Vi會響鈴報警。
2.2、編輯模式
在命令模式下輸入插入命令i(當前位置插入)、a(當前位置後一位置插入) 、o(下一行插入)可以進入文本輸入模式。在該模式下,用戶輸入的任何字元都被vi當做文件內容保存起來,並將其顯示在螢幕上。在文本輸入過程中,若想回到命令模式下,按鍵ESC即可。
2.3、末行模式
在命令模式下,用戶按「:」鍵即可進入末行模式下,此時Vi會在顯示窗口的最後一行(通常也是螢幕的最後一行)顯示一個「:」作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩衝區的內容寫到文件中等)。末行命令執行完後,Vi自動回到命令模式。 如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入「:」即可切換到末行模式,然後輸入命令。
3、vi基本操縱
3.1、進入編輯模式
命令 |
含義 |
---|---|
i和I |
i在游標前插入,I在行首插入 |
a和A |
a在游標後插入,A在行末插入 |
o和O |
o在游標所在行下一行插入,O在游標所在行上一行插入 |
3.2、移動游標
命令 |
含義 |
---|---|
h |
游標向左移動 |
j |
游標向下移動 |
k |
游標向上移動 |
l |
游標向右移動 |
H、M、L |
游標移動到到可見螢幕第一行(H)、中間行(M)、最後一行(L) |
^和$ |
^移動到行首,$移動到行末 |
G和gg |
G文檔最後一行,gg文檔第一行 |
ctrl+f、ctrl+b |
向前翻屏、向後翻屏 |
ctrl+d、ctrl+u |
向前半屛、向後半屛 |
{ 和 } |
{向上移動一段,}向後移動一段 |
w和b |
向前移動一個單詞,向後移動一個單詞 |
3.3、刪除命令
命令 |
含義 |
---|---|
X和x |
x刪除游標後一個字元,X刪除游標前一個字元,包含游標位置字元 |
dd和 n dd |
dd刪除所在行,5 dd刪除指定行數 |
d0和D |
d0刪除游標前本行所有內容,D刪除游標後本行所有內容,包含游標位置字元 |
dw |
刪除游標所在位置的字,包含光表所在位置字元 |
3.4、撤銷命令
命令 |
含義 |
---|---|
u |
一步一步撤銷 |
ctrl + r |
反撤銷 |
3.5、重複命令
命令 |
含義 |
---|---|
. |
重複執行上一次操作的命令 |
3.6、複製粘貼
命令 |
含義 |
---|---|
yy |
和 n yy 和y$ y^ yy複製當前行,5 yy複製5行 |
p |
在游標所在位置向下新開一行粘貼 |
3.7、選擇文本
命令 |
含義 |
---|---|
v 和 V |
v選擇單個字元,V選擇整行 |
<<和>> |
選擇文本之後,向左縮進,向右縮進 |
3.8、查找替換
命令 |
含義 |
---|---|
命令模式下,r和R |
r替換當前字元,R替換游標後的字元 |
末行模式下,/ + str |
n查找下一個,N查找前一個 |
末行模式下,%s/abc/123/g |
將文件中所有abc替換為123 |
末行模式下,1, 10s/abc/123/g |
將第一行至第10行之間的abc替換成123 |