允许鼠标操作
在.vimrc
文件里加上set mouse=a
。
移动光标到第一个非空格字符
^
,移动光标到当前行的第一个非空格字符。
另外,0
移动光标到行首。+
移动光标到下一行的第一个非空格字符,-
移动光标到上一行的第一个非空格字符。
删除一个函数
假设有如下函数,
int sum() {
int total = 0;
for (int i = 0; i < 42; i++) {
total += i;
}
return total;
}
使光标位于函数体内(且光标位于for循环体外),然后da}dd
。
da}
,删除当前光标所在”{}块”,此时函数只剩下了int sum()
行;然后,再通过dd
删除这一行。
删除函数体:使光标位于函数体内,然后di}
。操作完成之后,剩下的代码是int sum() {}
。
拷贝一个函数
假设函数还是如上所示。
使光标位于函数体内(且光标位于for循环体外),然后va}o0y
。
v
,进入visual mode。
a}
,选择当前的“{}块”。o
,改变visual mode中光标的移动方向。
0
,移动光标到行首。y
,拷贝。
如果函数的{
是另起新行的,比如,
int sum()
{
// ...
}
那么,使用va}o-0
。通过-
使得光标上移一行。
删除函数声明中的参数
假设函数声明为,int sum(int a, int b)
。将光标至于“()”内,然后di)
可以删除“()”内所有参数。
da)
可以连(
和)
在内一并删除。
找到匹配的{}()[]
%
可以找到和光标所在的{、}、(、)、[、]相匹配的另一半。
选择文本
按v
进入visual mode,然后按}
或者{
可以选择下一“段落”(段落就是空行隔开的文字块)或者上一“段落”。
按3j
多选择下3行,或者5k
去除当前选中的5行。
o
,改变visual mode中光标的移动方向。