模式 (mode)
一開始認識 vim就要先了解其不同的模式:
- 普通模式 (Normal Mode)
- 插入模式 (Insert Mode)
- 命令列模式 (Command Line Mode)
- 可視模式 (Visual Mode)
其中最常用是一般模式 (Normal Mode)、插入模式 (Insert Mode)及命令列模式 (Command Line Mode)。一開始進入 vim時的模式為普通模式,
其他模式都要經過普通模式進入,透過 Esc鍵返回。
普通模式 (Normal Mode)
游標移動 |
h or [←] | 游標向左移動一個字元 |
j or [↓] | 游標向下移動一個字元 |
k or [↑] | 游標向上移動一個字元 |
l or [→] | 游標向右移動一個字元 |
可以在指令前加上要執行指令的次數,例如 20l or 20[→],就可以往右移動 20個字元。 |
[Ctrl] + b or [PgUp] | 向上移動一頁 (backward) |
[Ctrl] + f or [PgDn] | 向下移動一頁 (forward) |
[Ctrl] + u | 向上移動半頁 (upward) |
[Ctrl] + d | 向下移動半頁 (downward) |
0 or [Home] | 移動到此列的起始位置 |
$ or [End] | 移動到此列最後面非空字元 |
^ | 移動到此列最前面非空字元 |
+ | 移動到下一列最前面的非空字元 |
- | 移動到上一列最前面的非空字元 |
gg | 移動到檔案的第一行 |
G | 移動到檔案的最後一行 |
{number}G 可以移動到第 {number}行,例如 20G,可以移動到檔案第 20行 |
H | 移動到目前顯示的第一行首字元 |
M | 移動到目前顯示的中間一行首字元 |
L | 移動到目前顯示的最後一行首字元 |
[Space] | 向右移動一個字元 |
[Enter] | 移動到下一行 |
{number}[Space]可以向右移動 {number}個字元,與[→]不同的是,[Space]會移動到下一行。
{number}[Enter]可以向下移動 {number}行。 |
搜尋與取代 |
/{string} | 向後搜尋 {string}字串 |
?{string} | 向前搜尋 {string}字串 |
n | 執行上一個搜尋操作 |
N | 反向執行上一個搜尋操作 |
s/{string1}/{string2}/g | 將此行的 {string1}取代成 {string2} |
%s/{string1}/{string2}/g | 將檔案裡的 {string1}取代成 {string2} |
%s/{string1}/{string2}/gc | 將檔案裡的 {string1}取代成 {string2},取代前需要確認 |
編輯 |
x | 刪除游標後面的字元 |
X | 刪除游標前面的字元 |
dd | 刪除游標所在的這一行 |
{number}X及 {number}x可以刪除游標前、後 {number}個字元。
{number}dd可以刪除游標往下 {number}行。 |
d1G | 刪除游標到第一行中的內容 |
dG | 刪除游標到最後一行的內容 |
d0 | 刪除游標前的這一行的內容 |
d$ | 刪除游標後的這一行的內容 |
yy | 複製游標所在的這一行 (yank) |
{number}yy可以複製游標往下 {number}行。 |
y1G | 複製游標到第一行中的內容 |
yG | 複製游標到最後一行的內容 |
y0 | 複製游標前的這一行的內容 |
y$ | 複製游標後的這一行的內容 |
p | 在游標的後一行貼上 |
P | 在游標的前一行貼上 |
J | 將此行與下一行合成同一行 |
u | 回到上一個操作的狀態 (undo) |
[Ctrl] + r | 回到下一個操作的狀態 (redo) |
. | 重複上一個操作 |
插入模式 (Insert Mode)
進入插入模式 |
i | 在游標字元處前插入 (insert) |
I | 從此行第一個非空字元前插入 |
a | 在游標字元處後插入 (append) |
A | 從此行最後字元後插入 |
o | 插入新的下面一行 (open) |
O | 插入新的上面一行 |
r | 進入取代模式,只取代一個字元 (replace) |
R | 進入取代模式,直到離開 |
命令列模式 (Command Line Mode)
Command Line Mode指令 |
:w | 儲存目前檔案變更 (write) |
:q | 離開 vim (quit) |
:w!可以強制寫入唯讀檔案。:q!可以強制不儲存離開。 |
:wq | 儲存並離開 |
ZZ | 若檔案沒有修改,直接離開。若檔案有修改,儲存並離開 |
:w {filename} | 將檔案另存到 {filename} |
:r {filename} | 將另外一個檔案的內容加到游標位置的下一行 |
:! {command} | 暫時離開 vim並執行 {command} |
vim 可以同時打開多個檔案進行編輯。ex: vim a.txt b.txt。 |
:files | 列出目前 vim所開啟的檔案 |
:n | 編輯下一個檔案 |
:N | 編輯上一個檔案 |
可視模式 (Visual Mode)
Visual Mode指令 |
v | 將游標經過的字元反白選擇 |
V | 將游標經過的行反白選擇 |
[Ctrl + v] | 以blcok的方式進行反白選擇 |
y | 複製選擇的內容 |
d | 刪除選擇的內容 |
p | 貼上選擇的內容 |
參考連結:
鳥哥私房菜 第九章、vim程式編輯器
沒有留言:
張貼留言