第一層—菜鳥
kjhl --- “上下左右”移動光標
i --- 當前光標位置插入
dd --- 刪除當前行(並將該行內容存到剪貼板裏)
p --- 粘貼剪貼板
:wq --- 存盤+退出
:help <command> --- 顯示相關命令的幫助
第二層—入門
(1)各種插入模式
a --- 在光標後插入
o --- 在當前行後一行插入
O --- 在當前行前一行插入
cw --- 替換從光標所在位置後到一個單詞結尾的字符
(2)簡單的移動光標
0 --- 到本行行頭
$ --- 到本行行尾
^ --- 到本行第一個不是blank字符的位置
g_ --- 到本行最後一個不是blank字符的位置
/string --- 搜索string的字符串
(3)拷貝/粘貼
yy --- 拷貝當前行
p/P --- 粘貼(當前位置之後/之前)
(4)Undo/Redo
u --- undo(撤銷)
<C-r> --- redo
(5)保存/退出/切換文件(buffer)
ZZ --- 保存並退出(與:wq效果相同)
<C-h> / <C-l> --- 切換上一個/下一個文件
第三層—進階
(1)重複
n<command> --- 重複執行command n次
e.x: 2dd --- 刪除兩行;3p --- 粘貼3次
. --- (小數點)重複執行上一條命令
(2)快速移動光標
gg --- 到第一行
:N(或NG)--- 到第N行
G --- 到最後一行
w --- 到下一個單詞開頭
b --- 到上一個單詞開頭
e --- 到下一個單詞結尾
(3)最強的光標移動
% --- 匹配括號移動
* --- 匹配光標當前所在單詞,移動光標到下一個
# --- 匹配光標當前所在單詞,移動光標到上一個
(4)“組合拳”
0y$ --- 拷貝當前行的內容(無blank字符),與yy有些類似
ye --- 拷貝當前位置到本單詞的最後一個字符
ggyG --- 複製該文件全部內容
ggdG --- 刪除該文件全部內容
ggvG --- 全選高亮顯示
vgU --- 變大寫
vgu --- 變小寫
第四層—再提高
(1)在當前行移動光標
f, --- 到下一個字符爲,的位置; F與f方向相反。
t, --- 到,的前一個字符; T與t方向相反。
dt, --- 刪除從光標開始的所有內容,直到遇到逗號(,)
(2)區域選擇
format:<action>a<object> 和 <action>i<object>
---action: 任何命令。如y(複製), d(刪除), v(可視化)等;
---object: w,W,s,p,特別字符(",',),},])
下面舉個在visual mode下的例子:
e.x: (map (+) ("string"))且光標雙引號內
vi" --- 會選擇string
va" --- 會選擇"string"
va) --- 會選擇("string")
v2i) --- 會選擇map (+) ("string")
v2a) --- 會選擇(map (+) ("string"))
兩點說明:
---可以嘗試將i/a後面的object替換成w/W/s/p
---在normal mode下,只需將v替換成y,d,就又是愉快的複製、刪除了。
(3)塊操作(Ctrl-v)
典型操作: 多行操作
3.1)行頭操作
移動光標到行頭-->塊操作-->選擇多行-->插入-->所選行頭均插入
0 <C-v> j/k/h/l I [ESC]
3.2)行尾操作
塊操作-->選擇多行-->插入-->所選行尾均插入
<C-v> j/k/h/l A [ESC]
(4)可視化操作(visual mode)
按v/V進入visual mode並選擇要操作的行後,
< --- 向左縮進
> --- 向右縮進
= --- 自動/默認縮進
J --- 把所選行連接成一行
(5)分屏
:split/:sp --- 創建分屏
:vsplit/:vsp --- 創建垂直分屏
<C-w> c --- 關閉當前分屏
<C-w> h/j/k/l --- 在各個屏間切換光標
<C-w> = --- 所有屏等寬
補充:vim如何與剪貼板交互
(1)vim--->other apps
vim中使用在vim中使用 "+y 使用進行復制,然後在應用程序中用Ctrl+v粘貼
(2)other apps--->vim
應用程序中使用Ctrl+c複製,在vim中使用Shift+Insert粘貼