vi 與 vim 快捷按鍵說明大全
阿新 • • 發佈:2019-02-17
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