拷贝Vim中的文本到Mac OS X的系统粘贴板
:[range]w[rite] !pbcopy
比如:.w !pbcopy
把当前行写到系统粘贴板里,也就是复制当前行。
也可以选择文本后,再:w !pbcopy
。
:r !pbpaste
,粘贴。
另外,如果vim在编译时打开了+clipboard
,那么set clipboard=unnamed
之后,yy
之类的命令就可以直接复制到粘贴板了。
...
日常开发中常用的一些Vim操作
允许鼠标操作
在.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
,拷贝。
如果函数的{
是另起新行的,比如,
Increase Number in Vim
How do you increase a number directly under the cursor?
光标放在数字上,按Ctrl+A
原数值加1;按Ctrl+X
减1。
10Ctrl+A
,在原数值上加10.