檔案操作
vim【vi】 // 開啟一個空檔案
vim【vi】 a.txt // 開啟目前的目錄中的a.txt檔案;若檔案不存在則建立一個名為a.txt的檔案(指定儲存位置為目前的目錄)
vim【vi】 e:\a.txt // 開啟e盤目錄中的a.txt檔案;若檔案不存在則建立一個名為a.txt的檔案(指定儲存位置為e:\)
:w // 儲存檔案
【:wq】// 儲存並退出
【:wq】 e:\a.txt // 儲存到e:\a.txt,並退出
:q // 退出(如果未儲存,則會退出失敗)
:q! // 不儲存,強制退出
:set fileformat? // 查看當前格式 - unix/dos
:set fileformat=unix // 將當前檔案設定成unix格式
游標移動
h j k l // 左 下 上 右
ctrl + f // 下一頁
ctrl + b // 上一頁
% // 括弧匹配 - 小括弧/中括弧/大括弧
w【W】 // 跳到下一個單詞的起始處
b【B】 // 跳到上一個單詞的起始處
e【E】 // 跳到當前單詞的末尾
0【^】 // 零 跳到當前行最前字元的位置
$ // 跳到當前行行末
gg // 跳到第一行最前字元的位置
gd // 跳轉當前游標處變數或函數的定義處
G // 跳到當前檔案最後一行的最前字元的位置
5G // 跳轉到第5行最前字元的位置
fx // 在當前行中向後尋找字元x
Fx //在當前行中向前尋找字元x
; // 重複上一次的f或F命令
, // 執行f或F命令時,向前尋找字元x
* // 向後尋找當前游標下的單詞
# // 向前尋找當前游標下的單詞
·. // Tab上面的字元+句號 回到上一次編輯所在的行首
H // 到當前螢幕的最上一行
M // 到當前螢幕的中間一行
L // 到當前螢幕的最下一行
插入模式
i // 從當前游標位置插入
I // 從當前行起始處插入
a // 在游標之後追加
A // 在當前行末追加
o // 在當前行下一行插入一個新行
O // 在當前行上一行插入一個新行
ctrl + n // 下一個提示匹配
ctrl + p // 上一個提示匹配
esc // 退出編輯模式
可視模式(用於選中文本)
v // 啟動可視模式,移動游標選中字元
V // 啟動行可視模式,移動游標選中行
ctrl + v // 啟動塊可視模式
o // 移動到選擇塊的另外一端
U // 將當前選擇塊轉成大寫
O // 移動到選擇塊的另外一對角上
aw // 選中一個單詞
ab // 選中一個匹配塊(如:小括弧/中括弧/大括弧等)
aB // 選中一個括弧匹配塊
ib // 選中小括弧中的內容
iB // 選中大括弧中的內容
> // 右移
< // 左移
y // 複製
d // 刪除
~ // 將當前選擇塊內容大小寫切換
編輯
rx // 將當前游標處字元替換為字元x(非插入模式下)
J // 將下一行挪到當前行結尾
cc // 刪除當前行內容
cw // 刪除當前游標到所在單詞末間的內容
c$ // 刪除當前游標到行末的內容
s // 刪除當前游標字元,並切換到插入模式
S // 刪除當前行內容
u // 撤銷
ctrl + r // 重做
. // 句號 重複上次命令
~ // 當前游標下字元的大小寫轉換
g~iw // 當前游標下單詞的大小寫轉換
gUiw // 轉換當前游標下單詞為大寫
guiw // 轉換當前游標下單詞為小寫
<< // 左縮排
>> // 右縮排
== // 自動縮排對齊
剪下、複製和粘貼
dd // 剪下(刪除)當前行
dw // 剪下(刪除)當前單詞
x // 刪除當前字元
X // 刪除當前游標的前一個字元
D // 刪除當前游標到行尾
yy // 複製當前行
nyy // 複製從當前行起的n行內容
yw // 複製當前游標到所在單詞末間的內容
y$ // 複製當前游標到行末間的內容
p // 在當前游標後插入複製的內容
P // 在當前游標前插入複製的內容
]p // 以恰當的縮排插入複製的內容
搜尋和替換
/Hello // 搜尋Hello字串
?Hello // 向前搜尋Hello字串
n // 向正方向搜尋下一個字串
N // 向反方向搜尋下一個字串
:%s/Hello/Test/g // 全域替換當前檔案中所有的Hello為Test
:%s/Hello/Test/g // 全域替換當前檔案中所有的Hello為Test(需要逐個確認)
多檔案
:e test.txt // 在新緩衝區中開啟並編輯test.txt檔案
:bn // 切換到下一個緩衝區
:bd // 刪除當前緩衝區(關閉檔案)
:sp test.txt // 在新的緩衝區中開啟檔案,並分割表單
ctrl+w,ctrl+s // 分割表單
ctrl+w,ctrl+w // 切換到不同的表單
ctrl+w,ctrl+q // 關閉當前表單
ctrl+w,ctrl+v // 垂直分割表單
:tabe test.txt // 在新標籤頁中編輯檔案
gt // 下一個標籤
gT // 前一個標籤
:tabr // 切換到第一個標籤
:tabl // 切換到最後一個標籤
:tabm 3 // 切換到當前標籤後的第3個標籤
參考
簡明 Vim 練級攻略
Eclipse和Vim快速鍵案頭
Vim命令速查卡
給程式員的VIM速查卡
Vim的分屏功能
遊戲:VIM大冒險