linux(ubuntu)中vim/vi的常見用法
vi/vim常用命令
vim其實就是vi的升級版,vi裡的所有命令vim裡都可以用,一般使用來說幾乎沒什麼差別。
注:本篇文章區分大小寫!
vi / vim三級模式的關係:
命令列模式
任何時候,不管使用者處於何種模式,只要按一下ESC鍵,即可使Vi進入命令模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。在該模式下,使用者可以輸入各種合法的Vi命令,用於管理自己的文件。此時從鍵盤上輸入的任何字元都被當做編輯命令來解釋,若輸入的字元是合法的Vi命令,則Vi在接受使用者命令之後完成相應的動作。但需注意的是,所輸入的命令並不在螢幕上顯示出來。若輸入的字元不是Vi的合法命令,Vi會響鈴報警。
編輯/插入/文字編輯模式
在命令模式下輸入插入命令i、附加命令a 、開啟命令o、修改命令c、取代命令r或替換命令s都可以進入文字輸入模式。在該模式下,使用者輸入的任何字元都被Vi當做檔案內容儲存起來,並將其顯示在螢幕上。在文字輸入過程中,若想回到命令模式下,按鍵ESC即可。
末行模式
末行模式也稱ex轉義模式。在命令模式下,使用者按“:”鍵即可進入末行模式下,此時Vi會在顯示視窗的最後一行(通常也是螢幕的最後一行)顯示一個“:”作為末行模式的提示符,等待使用者輸入命令。多數檔案管理命令都是在此模式下執行的(如把編輯緩衝區的內容寫到檔案中等)。末行命令執行完後,Vi自動回到命令模式。
①:從命令模式進入到末行模式一般就是準備儲存/不儲存退出,輸入“:”自動跳到終端此頁的末尾。如圖
②:從末行模式到命令模式,“Esc”。
③:命令模式到編輯模式可以有多種,通常 press “ i ”。
④:編輯模式到命令模式,“Esc”。
vi / vim命令:
vi [filename] :開啟檔案,若檔案不存在則新建檔案並開啟。
插入內容:
i: 插入游標前一個字元
I: 插入行首
a: 插入游標後一個字元
A: 插入行未
o: 向下新開一行,插入行首
O: 向上新開一行,插入行首
移動游標:
h: 左移
j: 下移
k: 上移
l: 右移
M: 游標移動到螢幕中間行
L: 游標移動到螢幕最後一行行首
G: 移動到指定行,行號 -G
w: 向後一次移動一個字
b: 向前一次移動一個字
{: 按段移動,上移
}: 按段移動,下移
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
Ctrl+f: 向下翻一屏
Ctrl+b: 向上翻一屏
gg: 游標移動檔案開頭
G: 游標移動到檔案末尾
刪除命令:
x: 刪除游標後一個字元,相當於 Del
X: 刪除游標前一個字元,相當於 Backspace
dd: 刪除游標所在行,n dd 刪除指定的行數
D: 刪除游標後本行所有內容,包含游標所在字元
d0: 刪除游標前本行所有內容,不包含游標所在字元
dw: 刪除游標開始位置的字,包含游標所在字元
撤銷命令:
u: 一步一步撤銷
Ctrl+r: 反撤銷
重複命令:
.: 重複上一次操作的命令
文字行移動:
>>: 文字行右移
<<: 文字行左移
複製貼上:
yy: 複製當前行,n yy 複製 n 行
p: 在游標所在位置向下新開闢一行,貼上
可視模式:
v: 按字元移動,選中文字
V: 按行移動,選中文字可視模式可以配合 d, y, >>, << 實現對文字塊的刪除,複製,左右移動
替換操作:
r: 替換當前字元
R: 替換當前行游標後的字元
查詢命令:
/: str查詢
n: 下一個
N:上一個
VI/VIM行號顯示:
需要時啟用:
在vim命令列模式下輸入 :set nu 取消顯示:在vim命令列模式下輸入: set nonu
永久自動顯示:
終端:vim ~/.vimrc 開啟後是一個空檔案,新增 set nu,儲存退出,重新啟動vi/vim。
替換命令(並不常用):
把abc全部替換成123: 末行模式下,將當前檔案中的所有abc替換成123
:%s/abc/123/g
末行模式下,將第一行至第10行之間的abc替換成123
:1, 10s/abc/123/g