轉載自https://blog.csdn.net/deniro_li/article/details/53945274
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