想體驗寫代碼指間行雲流水般的感覺嗎?想見識修改代碼時大刀闊斧、乾坤挪移嗎 ?如果是,那麼試着去用Vim吧 。
然他的入門曲線是較陡、較高的。第一步,需在此編輯器上生存下來。以下是我精心收集整理的入門必會命令,請務必爛熟於心,多多練習,並能達到無意識中便能使用,如此,方能登堂入室、一覽衆山。
各類命令如下 :
光標移動定位方式
hjkl (強例推薦使用其移動光標,但不必需) →你也可以使用光標鍵 (←↓↑→). 注: j 就像下箭頭
0 → 數字零,到行首
^ → 到本行第一個不是blank字符的位置(所謂blank字符就是空格,tab,換行,回車等)
$ → 到本行行尾
g_ → 到本行最後一個不是blank字符的位置
b → 向前移動一單詞的距離,並至單詞首
w → 向後移動一單詞的距離,並至單詞首
ge → 向前移動一單詞的距離,並至單詞尾
e → 向後移動一單詞的距離,並至單詞尾
)→ 向前移動一個句子
( → 向後移動一個句子
{ → 向前移動一個段落
} → 向後移動一個段落
gg → 移動到文件第一行第一個單詞首
G → 移動到文件最後一行第一個單詞首
f [F]c → 跳到本行後一個字符c所在處 [F表示向前]
gd → 跳到單字(標識符、函數等)定義處
N+[Enter] → N爲數字,光標向下移動N行
: + N → N爲數字,光標移動到指定行
<C-d>→屏幕向下移動半頁
<C-u>→屏幕向上移動半頁
<C-f> →屏幕向下移動一頁
<C-b> →屏幕向上移動一頁
H →移動到本屏幕第一行第一個單詞首
M →移動到本屏幕中間第一個單詞首
L →移動到本屏幕最後一行第一個單詞首
z + [Enter] →當前光標所在行變爲屏幕首行
z + [ - ] →當前光標所在行變爲屏幕尾行
插入方式
i → 在光標前途插入
a → 在光標後插入
I → 在當前行首插入
A → 在當前行尾插入
o → 在當前行後插入一個新行
O → 在當前行前插入一個新行
刪除、複製和粘貼
x,X → 在一行字中,x爲向後刪除一個字符,X爲向前刪除一個字符
dt c → 刪除從光標所在處到字符c
dl → 刪除光標所在的字符
yl → 複製光標所在的字符
cl → 改變光標所在的字符
dw → 刪除光標所在的單詞
yw → 複製光標所在的單詞( ye )
cw → 改變光標所在的單詞
dd → 刪除光標所在的一整行
yy → 複製光標所在的一行
cc → 改變光標所在的一行
ndd → 刪除光標所在的向下n行
p,P → p爲將已複製的內容在光標的下一行粘貼,P則爲粘貼在光標的上一行
可視化選擇
v → 字符選擇,會將光標經過的地方反白選擇
V → 行選擇
<C-v> → 塊選擇
y → 複製反白的地方
d → 刪除反白的地方
U → 變大寫
u → 變小寫
J → 把所有的行連接起來(變成一行)
< 或 > → 左右縮進
= → 自動給縮進 (陳皓注:這個功能相當強大,我太喜歡了)
搜索替換
/pattern → 向下搜索 pattern 的字符串(陳皓注:如果搜索出多個匹配,可按n鍵到下一個)
?pattern → 向下搜索 pattern 的字符串
n → 向相同方向查找下一個
N → 向相反方向查找下一個
:n1,n2s/pattern1/pattern2/g → 在第n1行和n2行之間尋找pattern1這個字符串,並且將其替換爲pattern2.
:1,$s/pattern1/pattern2/g → 從第一行到最後一行尋找pattern1這個字符串,並且將其替換爲pattern2.
:1,$s/pattern1/pattern2/gc → 從第一行到最後一行尋找pattern1這個字符串,並且將其替換爲pattern2.且在替換前顯示提示字符給用戶確認是否需要替換
r,R → 進入替換模式。r只替換光標所在那個字符一次。R會一直替換光標所在字符,直到按下Esc鍵
多文件編輯
:bn 和 :bp → 你可以同時打開很多文件,使用這兩個命令來切換下一個或上一個文件(或用:n和:N)
:rew 回到第一個文件
n# → 跳到前一個文件,實現兩個文件之間相互切換
:ls → 列出當前編輯的文件
:bd → 關閉當前文件
:bd! → 強制關閉當前文件
]c → 比較兩文件不同時跳到下一個不同處
[c → 比較兩文件不同時跳到上一個不同處
打開/保存/退出
:e <path/to/file> → 打開一個文件
:w → 存盤
:saveas <path/to/file> → 另存爲 <path/to/file>
:x, ZZ 或 :wq → 保存並退出 (:x 表示僅在需要時保存,ZZ不需要輸入冒號並回車)
:qa → 退出所有文件
:q! → 退出不保存 :qa! 強行退出所有的正在編輯的文件,就算文件有更改
其它
Undo/Redo
u → undo
<C-r> → redo
.→小數點,重複前一個操作
== → 自動給縮進光標所在行
<C-p>或是<C-n>,自動補齊功能
:shell → 暫時進入shell,當輸入exit時可回到vi繼續編輯
另外
輸入 :h! 試試看
再輸入 :h 42呢?