Enable / Disable
還可以通過 Ctrl+Shift+F12 在 Visual Studio 中實現 Enable / Disable。
vim和記事本或WORD不一樣,不是一打開后就可以輸入文字,此時它處於正常模式。
vim一共有4個模式:
- 正常模式 (Normal-mode)
- 插入模式 (Insert-mode)
- 命令模式 (Command-mode)
- 可視模式 (Visual-mode)
正常模式
啟動vim后默認處於正常模式。不論位於什么模式,按下<Esc>鍵(有時需要按兩下)都會進入正常模式。
插入模式
在正常模式中按下i, I, a, A等鍵,會進入插入模式。現在只用記住按i鍵會進行插入模式。在插入模式中,擊鍵時會寫入相應的字符。
命令模式
在正常模式中,按下:(英文冒號)鍵,會進入命令模式。在命令模式中可以執行一些輸入並執行一些vim或插件提供的指令,就像在shell里一樣。這些指令包括設置環境、文件操作、調用某個功能等等。
常用的命令有:q(退出)、q!(強制退出)、w(保存)、wq(保存並退出)。
可視模式
在正常模式中按下v, V, <Ctrl>+v,可以進入可視模式。可視模式中的操作有點像拿鼠標進行操作,選擇文本的時候有一種鼠標選擇的即視感,有時候會很方便。
1.插入命令(可配合數字使用)
i 在當前位置前插入
I 在當前行首插入
a 在當前位置后插入
A 在當前行尾插入
o 在當前行之后插入一行
O 在當前行之前插入一行
ni/a/o/I/A/O<Esc> 插入n個字符
2.移動命令(可配合數字使用)
h 左移單個字符
l 右移單個字符
k 上移單個字符
j 下移單個字符
nh/l/k/j 移動n個字符
gg 移動到文件頭
G / shift+g 移動到文件尾
(:n<Enter>)/(nG) 跳到第n行
'' 回跳剛才的出發點
m(a...z) 給當前行標記
'a 跳轉到標記a的行
:marks 查看當前所有標記
:delm! 刪除所有標記
(n)w 向前移動(n / )一個單詞
(n)b 向后移動(n / )一個單詞
3.刪除命令(可配合數字使用)
x 刪除單個字符
X 刪除當前字符的前一個字符
nx 刪除n個字符
dj 刪除下一行
dk 刪除上一行
dd 刪除(剪切)當前行
D 刪除當前字符至行尾
4.撤銷重做命令
u 撤銷
Ctrl+r 重做(撤銷的撤銷)VsVim不可用
5.縮進命令
shift+v 選擇當前行,可以在輸入移動指令來繼續移動
> 右縮進
< 左縮進
n>/< 縮進n個tab
5.替換命令
ra 將當前字符替換為a
:s/old/new/ 用old替換new, 替換當前行的第一個匹配
:s/old/new/g 用old替換new, 替換當前行的所有匹配
:%s/old/new/ 用old替換new, 替換所有行的第一個匹配
:%s/old/new/g 用old替換new, 替換整個文件的所有匹配
6.交換命令
ddp 交換當前行和其下一行
xp 交換當前字符和其后一個字符
7.剪切命令
(n)dd 剪切當前行(及之后的n行)
:n1,n2d 將n1 - n2行剪切。可用p命令將剪切內容進行粘貼
:n1,n2mn3 將n1 - n2行剪切粘貼至n3之后
8.其他基礎命令
% 括號匹配(以匹配一個括號為目的移動)
/ text 查找text,按n查找下一個,按N查找前一個
dd 刪除(剪切)當前行
yy 復制當前行
p 在當前行下一行粘貼
shift+p 在當前行前一行粘貼
移動光標類命令
支持
h
光標左移一個字符
l
光標右移一個字符
k
光標上移一行
j
光標下移一行
space
光標右移一個字符
Backspace
光標左移一個字符
Enter
光標下移一行
w or W
光標右移一個字至字首
b or B
光標左移一個字至字首
e or E
光標右移一個字至字尾
nG
光標移至第 n 行首 (會多移一行)
0
(注意是數字零) 光標移至當前行首
^
光標移至當前行首
$
光標移至當前行尾
不支持
e or E
光標標右移一個字至字尾
nG
光標移至第 n 行首 (會多移一行)
H
光標移至屏幕頂行
M
光標移至屏幕中間行
L
光標移至屏幕最后行
查找類命令
支持
# or *
查找當前單詞
不支持
f
查找當前行
插入文本類命令
支持
i
在光標前
I
在當前行首
a
光標后
A
在當前行尾
o
在當前行之下新開一行
O
在當前行之上新開一行
r
替換當前字符
s
從當前光標位置處開始,以輸入的文本替代指定數目的字符
S
刪除指定數目的行,並以所輸入文本代替之
ncw or nCW
修改指定數目的字
nCC
修改指定數目的行
不支持
R
替換當前字符及其后的字符,直至按 ESC 鍵
刪除命令
支持
ndw or ndW
刪除光標處開始及其后的 n-1 個字
d$
刪至行尾
ndd
刪除當前行及其后 n-1 行
x 或 X
刪除一個字符,x 刪除光標后的,而 X 刪除光標前的
不支持
d0
刪至行首
其它
支持
c
改寫命令 (cw,caw 等)
y
復制命令 (yw,yaw,nyy 等,並支持寄存器)
z
滾屏,zz,zb,zt 等
1,dw,這是在此之前我用的對做的也幾乎是唯一掌握的一個操作技巧。從光標當前的位置開始刪除,直到刪到單詞最后。
2,daw,算是1的屬性擴充版,這個命令可以直接刪除光標所在的一個單詞。為了方便記憶,可以記憶為deletea word縮寫。
3,bdw,這也是一個復合命令。B可以讓光標回退到單詞開頭的位置,而dw則是第1個描述過的命令。
4,另外再有就是刪除一個字符,操作為x。