編輯器之神-vim

Vi有三種基本工作模式:

  • 命令模式
  • 文本輸入模式
  • 末行模式。
image.png

命令行模式

任何時候,不管用戶處于何種模式,只要按一下ESC鍵,即可使Vi進入命令模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處于該模式下。在該模式下,用戶可以輸入各種合法的Vi命令,用于管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。

文本輸入模式

在命令模式下輸入插入命令i、附加命令a 、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當做文件內容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按鍵ESC即可。

末行模式

末行模式也稱ex轉義模式。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。例如:

:sp newfile

則分出一個窗口編輯newfile文件。如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。

vim基礎操作

vim是從 vi 發展出來的一個文本編輯器 。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富

  • 進入插入模式:
i: 插入光標前一個字符
I: 插入行首
a: 插入光標后一個字符
A: 插入行未 
o: 向下新開一行,插入行首
O: 向上新開一行,插入行首
  • 進入命令模式:
    ESC:從插入模式或末行模式進入命令模式
    移動光標:
h: 左移 
j: 下移 
k: 上移 
l: 右移
M: 光標移動到中間行 
L: 光標移動到屏幕最后一行行首 
G: 移動到指定行,行號 -G
0: 移動到本行行首
$: 移動到本行行末
w: 向后一次移動一個字 
b: 向前一次移動一個字
{: 按段移動,上移 
}: 按段移動,下移
Ctr-d: 向下翻半屏 
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏 
Ctr-b: 向上翻一屏
gg: 光標移動文件開頭 
G: 光標移動到文件末尾
  • 刪除命令:
x: 刪除光標后一個字符,相當于 Del 
X: 刪除光標前一個字符,相當于 Backspace
dd: 刪除光標所在行,n dd 刪除指定的行數 
D: 刪除光標后本行所有內容,包含光標所在字符 
d0: 刪除光標前本行所有內容,不包含光標所在字符
dw: 刪除光標開始位置的字,包含光標所在字符
  • 撤銷命令:
u: 一步一步撤銷 
Ctr-r: 反撤銷
  • 重復命令:
.: 重復上一次操作的命令
  • 文本行移動:
>>: 文本行右移 
<<: 文本行左移
  • 復制粘貼:
yy: 復制當前行,n yy 復制 n 行 
p: 在光標所在位置向下新開辟一行,粘貼
  • 可視模式:
v: 按字符移動,選中文本 
V: 按行移動,選中文本可視模式可以配合 d, y, >>, << 實現對文本塊的刪除,復制,左右移動
  • 替換操作:
r: 替換當前字符 
R: 替換當前行光標后的字符
  • 查找命令:
/: str查找
n: 下一個
N:上一個
  • 替換命令:
    把abc全部替換成123
末行模式下,將光標所在行的abc替換成123
:%s/abc/123/g

末行模式下,將第一行至第10行之間的abc替換成123
:1, 10s/abc/123/g

vim里執行 shell 下命令:

末行模式里輸入!,后面跟命令
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容