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。