admin 管理员组

文章数量: 887019

两个有用的VIM使用技巧

  (2010-05-15 14:21:18) 转载
标签: 

杂谈

 


Linux下的编辑利器应该要算VIM了!VIM功能强大,例如:语法加亮、列编辑、正则表达式替换、多窗口操作等等。但是对于初学者,特别是用惯了鼠标的Windows用户,VIM的用户界面与使用方法非常不符合常规,甚至认为它比较混乱,无所适从。事实上,VIM编辑器是专门为经验丰富的用户设计的,它的界面和使用方法提供了更快的速度和更强的功能。对于熟知它的用户,VIM的许多特性节省了时间和击键次数,并可以完成一些其他编辑器无法完成的功能。本文只是针对我的个人经验介绍两个有用的VIM使用技巧:跨文件间的多行拷贝和列编辑模式。如果您对VIM很陌生,建议先读读这篇文章。

跨文件间的多行拷贝

我通常是用PUTTY登入到服务器然后用VIM来编辑代码,在不同文件间拷贝代码是常有的事。当要拷贝的部分是在屏幕可见范围内,只要用鼠标左键把代码选中,然后转到另一文件里,右键点击代码就被复制了。但是如果要复制的部分超过一个屏幕的高度,就没那么简单了。在VIM的常规模式下,用鼠标是无法跨页选择的。比较土的办法是,先复制一页内容,然后转到下一页再拷贝。但是如此多次复制容易出错,一不小心就可能多复制或者少复制了几行。这里介绍一种相对简单的办法:

  1. 用VIM打开一个文件, 例如:vim original.php
  2. 在普通模式下,输入:":sp"; (不含引号)横向切分一个窗口,或者":vsp"纵向切分一个窗口,敲入命令后,你将看到两个窗口打开的是同一个文件。
  3. 在普通模式下, 输入:":e new.php", 在其中一个窗口里打开另一个文件。
  4. 切换到含有源文件(original.php)的窗口,在普通模式下,把光标移到你要复制的第一行的开头,按一下v进入可视模式,然后使用向下键选择你要复制的部分,选好后按一下y, 选择的内容就被复制到临时寄存器里。(用crt+w再按一下w,可以在两个窗口间切换。)
  5. 切换到目标文件窗口,在普通模式下,按一下p,就完成复制了。

列编辑模式

用过UltraEdit的人可能都知道,UlrtaEdit支持列编辑模式(column mode), 按alt+c可以进入列模式,然后以列为单位选择文本,很方便的!VIM也有这个功能:ctrl+v, 比如要在每一行的开头加入字符串:61dh,步骤如下:

  1. 用VIM打开一个文件, 例如:vim abc.php
  2. 在普通模式下,按ctrl+v,进入列可视编辑模式
  3. 把关标移到第一行的开头,按向下键,选择所有行的开头
  4. 按大写的I,切换到插入模式,输入61dh。(这时你只能看到第一行被修改了,请不要着急。)
  5. 按Esc两次,就会自动完成所有行的编辑。

本文标签: 使用技巧 有用 两个 vim