VIM 小技巧
时间:2010-09-02 来源:blueelfmoon
跨文件间的多行拷贝
我通常是用PUTTY登入到服务器然后用VIM来编辑代码,在不同文件间拷贝代码是常有的事。当要拷贝的部分是在屏幕可见范围内,只要用鼠标左键把代码选中,然后转到另一文件里,右键点击代码就被复制了。但是如果要复制的部分超过一个屏幕的高度,就没那么简单了。在VIM的常规模式下,用鼠标是无法跨页选择的。比较土的办法是,先复制一页内容,然后转到下一页再拷贝。但是如此多次复制容易出错,一不小心就可能多复制或者少复制了几行。这里介绍一种相对简单的办法:
- 用VIM打开一个文件, 例如:vim original.php
- 在普通模式下,输入:":sp"; (不含引号)横向切分一个窗口,或者":vsp"纵向切分一个窗口,敲入命令后,你将看到两个窗口打开的是同一个文件。
- 在普通模式下, 输入:":e new.php", 在其中一个窗口里打开另一个文件。
- 切换到含有源文件(original.php)的窗口,在普通模式下,把光标移到你要复制的第一行的开头,按一下v进入可视模式,然后使用向下键选择你要复制的部分,选好后按一下y, 选择的内容就被复制到临时寄存器里。(用crt+w再按一下w,可以在两个窗口间切换。)
- 切换到目标文件窗口,在普通模式下,按一下p,就完成复制了。
-
列编辑模式
用过UltraEdit的人可能都知道,UlrtaEdit支持列编辑模式(column mode), 按alt+c可以进入列模式,然后以列为单位选择文本,很方便的!VIM也有这个功能:ctrl+v, 比如要在每一行的开头加入字符串:61dh.com,步骤如下:
- 用VIM打开一个文件, 例如:vim abc.php
- 在普通模式下,按ctrl+v,进入列可视编辑模式
- 把关标移到第一行的开头,按向下键,选择所有行的开头
- 按大写的I,切换到插入模式,输入61dh.com。(这时你只能看到第一行被修改了,请不要着急。)
- 按Esc两次,就会自动完成所有行的编辑。
相关阅读 更多 +