1. 程式人生 > >vi 與 vim 快捷按鍵說明大全

vi 與 vim 快捷按鍵說明大全

1 一般指令模式

1.1 移動遊標

按鍵 說明
h 或向左方向鍵 遊標向左移動一個字元
j 或向下方向鍵 遊標向下移動一個字元
k 或向上方向鍵 遊標向上移動一個字元
l 或向右方向鍵 遊標向右移動一個字元
[ctrl]+[f] 螢幕向下移動一頁,相當於[Page Down](常用)
[ctrl]+[b] 螢幕向上移動一頁,相當於[Page Up](常用)
[ctrl]+[d] 螢幕向下移動半頁
[ctrl]+[u] 螢幕向上移動半頁
n+[Space] n 表示數字,按下數字後再按空格鍵,遊標會向右移動到這一行的第 n 個字元。
功能鍵[Home]或 0 遊標移動到這一行的第一個字元處
功能鍵[End]或 $ 遊標移動到這一行的最後一個字元處 (常用)
H 遊標移動到這個螢幕最上方那一行的第一個字元
M 遊標移動到這個螢幕中央那一行的第一個字元
L 遊標移動到這個螢幕最下方那一行的第一個字元
G 遊標移動到這個檔案的最後一行 (常用)
nG n 為數字。遊標移動到這個檔案的第 n 行
gg 遊標移動到這個檔案的第一行 (常用)
n+[Enter] n 為數字。遊標向下移動 n 行 (常用)

1.2 搜尋與取代

按鍵 說明
/word 在當前遊標所在位置往下尋找關鍵字為 word 的字串 (常用)
?word 在當前遊標所在位置往上尋找關鍵字為 word 的字串
n 這裡的 n 是按鍵 n。代表重複前一個搜尋動作
N 這裡的 N 是按鍵 N。功能與 n 相反,代表反向執行前一個搜尋動作
:n1,n2s/word1/word2/g n1 與 n2 都為數字,表示行數。可在第 n1 行與第 n2 行之間尋找 word1 字串,並替換為 word2 (常用)
:1,$s/word1/word2/g 表示從第一行到最後一行,將 word1 字串替換為 word2 (常用)
:1,$s/word1/word2/gc 表示從第一行到最後一行,也是將 word1 字串替換為 word2,不同之處是在替換前顯示提示字元,由使用者確認是否最終替換 (常用)

* 使用 /word 的同時,配合使用 n 或者 N,搜尋可以變得很方便的啦 :)

1.2 刪除、複製以及貼上

按鍵 說明
[Del] 或 x 向後刪除一個字元 (常用)
X 向前刪除一個字元 (常用)
nx n 為數字,表示連續向後刪除 n 個字元
dd 刪除遊標所在的那一行 (常用)
ndd n 為數字,刪除遊標所在的那一行往下數 的 n 個行 (常用)
d1G 刪除遊標所在的那行到第一行的所有資料
dG 刪除遊標所在的那行到最後一行的所有資料
d$ 刪除遊標所在處到該行的最後一個字元
d0 是數字 0,刪除遊標所在處到該行的第一個字元
yy 複製遊標所在的那一行 (常用)
nyy n 為數字, 複製遊標所在的那一行往下數 n 行 (常用)
y1G 複製遊標所在行到第一行的所有資料
yG 複製遊標所在行到最後一行的所有資料
y0 複製遊標所在的字元到該行行首的所有資料
y$ 複製遊標所在的字元到該行行尾的所有資料
p 將已複製的資料貼上在遊標所在的那一行的下一行 (常用)
P 將已複製的資料貼上在遊標所在的那一行的上一行,原來遊標所在的那一行會被推後一行 (常用)
J 將遊標所在的行與下一行的資料合併為一行
u 撤銷前一個操作 (常用)
[ctrl]+r 重做上一個被撤銷的操作 (常用)
. 這是小數點,表示重複前一個操作 (常用)

* 最後三個按鍵乃是神器,熟悉後記得經常使用它們,會讓你覺得使用 vim 是一件很快樂的事情哦 :)

2 一般指令模式切換到編輯模式

按鍵 說明
i 進入插入模式;從目前遊標所在處插入
I 進入插入模式;從目前遊標所在行的第一個非空白字元處插入 (常用)
a 進入插入模式;從目前遊標所在處的下一個字元開始插入
A 進入插入模式;從目前遊標所在行的最後一個字元開始插入 (常用)
o 是字母,表示進入插入模式;從目前遊標所在行的下一行處插入新的一行
O 是字母,表示進入插入模式;從目前遊標所在行的上一行處插入新的一行 (常用)
r 進入取代模式;只會取代遊標所在的那個字元一次
R 進入取代模式;會一直取代遊標所在的文字,直到按下 [Esc] 為止 (常用)
[Esc] 從編輯模式返回到一般指令模式 (常用)

* 在左下角處看到 INSERT 或 REPLACE 時,才表示已經進入編輯模式。

3 一般指令模式切換到指令列模式

按鍵 說明
:w 將編輯的檔案寫入硬碟 (常用)
:w! 如果檔案為只讀狀態,可以強制寫入硬碟,是否寫入成功,與你所擁有的檔案許可權有關
:q 離開 vi (常用)
:q! 即使檔案未儲存,仍強行離開 vi
:wq 檔案寫入硬碟後(即儲存)離開 vi (常用)
:wq! 檔案強制寫入硬碟後(即儲存)離開 vi
ZZ 大寫字母 Z,如果檔案沒有修改,則直接離開;如果檔案被修改,則儲存後離開
:w [filename] 將當前檔案另存為另一個檔案,這個新檔案的儲存路徑為當前路徑
:r [filename] 在當前檔案中讀入另一個檔案的資料,插入到當前遊標所在列的後面
:n1,n2 w [filename] 將第 n1 行到第 n2 行的資料儲存為新的檔案
:! command 暫時離開 vi 到指令列模式下執行 command 的顯示結果

* ! 表示強制執行

4 vim 特有功能

4.1 區域選擇

按鍵 說明
v 字元選擇,移動遊標,遊標經過的地方會反白選擇
V 行選擇,移動遊標,遊標經過的行會反白選擇
[Ctrl]+v 區塊選擇,移動遊標以長方形方塊的方式反白選擇
y 複製反白選擇的地方
d 刪除反白選擇的地方
p 將之前複製的區塊,貼上在遊標所在處

4.2 多檔案編輯

按鍵 說明
:n 編輯下一個檔案
:N 編輯上一個檔案
:files 列出 vim 所開啟的所有檔案

使用 vim a.txt b.txt … 指令,就能一次開啟多個檔案

4.3 多視窗

按鍵 說明
:sp [filename] 開啟一個新視窗。如果有加 filename,表示是在新視窗開啟一個新檔案;否則,表示兩個視窗為同一個檔案的內容(即同步顯示)
[ctrl]+w+向下方向鍵 先按下[ctrl]不放,然後再按下 w 後放開所有按鍵,最後再按下向下方向鍵,遊標就會移動到下方的視窗
[ctrl]+w+向上方向鍵 按鍵方法同上,遊標會移動到上方的視窗
[ctrl]+w+q 關閉當前遊標所在的視窗

4.4 補齊

按鍵 說明
[ctrl]+x -> [ctrl]+n 依據目前正在編輯的檔案內容作為關鍵字,予以補齊(語法依據副檔名)
[ctrl]+x -> [ctrl]+f 依據當前目錄下的檔名,予以補齊
[ctrl]+x -> [ctrl]+o 以副檔名作為語法關鍵字,予以補齊

4.5 環境設定引數

按鍵 說明
:set nu 設定行號
:set nonu 取消行號
:set hlsearch 搜尋到的關鍵字反白顯示 (預設)
:set nohlsearch 搜尋到的關鍵字取消反白顯示
:set autoindent 自動縮排 (預設)
:set noautoindent 不自動縮排
:set backup 自動儲存備份檔(備份檔名為 filename~)
:set ruler 顯示右下角狀態說明
:set showmode 顯示左下角狀態說明(比如 INSERT)
:set backspace=(012) 倒退鍵設定;2:可以刪除任意值;0 或者 1,僅可刪除剛剛輸入的字元,無法刪除原來就存在的字元
:set all 顯示所有環境引數設定值
:set 顯示與系統預設值不同的設定值
:syntax on 開啟語法著色
:syntax off 關閉語法著色
:set bg=dark 開啟語法著色深色方案
:set bg=light 開啟語法著色淺色方案 (預設)

log:
* 17-01-16 add 補齊、環境設定引數
* 17-01-11 add 多檔案編輯、多視窗
* 17-01-09 add 一般指令模式切換到指令列模式、區域選擇
* 17-01-04 add 一般指令模式切換到編輯模式
* 16-12-30 new