科技时代新浪首页 > 科技时代 > 软件 > 正文

世界第二的VIM:普通人的编辑利器(下)


http://www.sina.com.cn 2006年10月08日 10:08 太平洋电脑网
作者:xbeta

上接:《世界第二的VIM:普通人的编辑利器(上)》

3.5 统一格式,下载vimrc

  上面所操作的各种命令,都是对VIM的设置。把它们写到一个_vimrc文件中就成了默认选项。每个VIM用户的_vimrc文件都不一样,因为每个人的需求不同。

  为了保证下面的操作得到预期的效果,请下载笔者的_vimrc。依次执行下述操作:

  •   ① 关闭所有的VIM
  •   ② 找到你的d:\program files\vim\vim7\_vimrc,复制一份。
      ③ 右键点击此处,“另存为”覆盖你的d:\program files\vim\vim7\_vimrc。

  注:这并不是标准做法,但对windows用户是比较方便的做法。

3.6 打开test.txt

  再次就模式进行提醒:Esc到Normal;Normal下i到编辑;Normal下:到命令行。

  运行VIM,并在命令行执行
  :e d:\test.txt

  接下来,把此文章排一下版。如果你认为可以手工排版,请把此文件复制到10000行再发表意见。

3.7 分段并保存

  原文没有分段,观察一下,发现可以在“以下是……”前面加回车,于是
  :%s/以下是/\r&/gc

  输入后,界面如图1。

世界第二的VIM:普通人的编辑利器(下)

图1

  并提示世界第二的VIM:普通人的编辑利器(下),请回答y或a。如果回答y,则替换当前一个;到了下一个,VIM还会再问你。所以,你回答几个y后不妨一a了之,全部替换。

  补充说明:s表示替换;s/a/b 表示把a换为b;上一命令是把“以下是”换为“\r&”,\r表示回车,&表示被替换的部分,即“以下是”;%则表示全文;/gc表示一直替换(不是仅替换第一个),并且要用户确认。

  看一下文件,你或许想,空2行可能更好。很简单,再重复一下刚才的命令就好了。不过,对强大的VIM来说,无须笨笨地重复输入上次的命令。在命令行按下:后,再按一下↑(向上的方向键),看到刚才的命令了吧?直接回车,提问时输入a,任务完成。

  既有变化,请及时保存。命令是
  :w

  当然,你也可以按ctrl+s。但ctrl+s之所以有效,是因为笔者在_vimrc中做了定义:当按下ctrl+s时,系统执行:w动作。因此,你完全可以定义其他热键,并把它映射到:w。

3.8 继续编辑

  首先删除“坚持”两字,很简单,只要按gg2x就行了。为了看效果,你可以分开按:
  gg,这时光标移到文章头。
  2x,这时删掉了2个字符。

  再一次体验VIM的神奇,比如按5x,于是5个字符消失了。当然,这5个字符是要保留的,没关系,你按一次u,就回来了吧?

  再按一下Ctrl+r,是不是又没了?再来一次u,是不是又回来了?没错。u和Ctrl+r相当于(是相当于不是等同于)windows的undo和redo。

  再试一下dd。是不是整行没有了?没关系,u回来就行了。

  再试一下3dd。一下子删除了3行!没关系,u回来。

  再来一个dG,哇,全文都没了?!仍然u回来啊。

3.9 更多编辑

  任务a:把每一句分为一行,即达到如下效果

  以**为荣、
  以**为耻,

  解决:如果你记得上面的替换命令,就会想到,可以用2次替换(“为荣、”换为“为荣、”加回车,“为耻,”换为“为耻,”加回车)。但这两次替换在VIM中完全可以一次完成,即用正则表达式,在“为”及后面2字符(“荣、”或“耻,”)后加入回车。怎么表示呢?

  :%s/为../&\r/gc

  看一下高亮,没问题,直接a

世界第二的VIM:普通人的编辑利器(下)

图2

  哇,是不是很壮观啊?没觉得?如果是一千行一万行呢?

  任务b:把行末的标点去掉,即“荣”后的顿号和“耻”后的逗号。

  解决:办法太多了,仍可以用替换。但此处还是展示一个新功能:列操作。

  安全起见,按两下Esc,再gg$,这时光标应到了文章第一行最后一个字符,即顿号上。

  再按ctrl+v,注意一下状态栏是否提示有“可视 块” 字样。(请确认你是采用了xbeta的_vimrc文件,如果没有,请试一下ctrl+q)

  再15jx,是否标点全部删除了?因为15j表示向下选中15行,x表示删除。

  任务c:错落有致

  操作:这次演示一下宏的用法,请严格按本教程操作。

  先做一下确认:输入法没有打开,并Esc到normal状态,gg到文首。

  •   按qa(q表示开始录制宏,宏的名字为a)
  •   再shift+>>(表示按住shift,连按两下>,再放开shift。此时第一行应当向后tab了一下)
  •   再j^(此时下移一行,并置光标于行首)
  •   再shift+>>再shift+>>(即第二行向后tab两下)
  •   再j^(下移一行,并将光标置于行首,为后续操作做准备)
  •   再q(表示宏录制结束,VIM会提示记录完成)

  这样宏录完了,可以用了。

  再@a,看到了效果了吧?宏执行了一次,即3、4行成功了。还剩下6段,但是你不用按6次@a,而是只要按下6@a就行了!

世界第二的VIM:普通人的编辑利器(下)

图3

  太神奇了!回放一下?先u,再来一次6@a。既然可以6,当然可以千千万万!

  补充说明:高手使用VIM是千变万化的。上面的前2个操作(分行+删标点),完全可以合成一个:%s/\(为.\)./\1\r/gc;或再把第3个操作(错落有致)融合到前一个操作中。

3.10 自由体验

  体验光标移动:请随意按几下j和k,看看反应;再多按几下l和h,看看反应;然后,当你的光标在英文时,请按几下w和b。

  对了,gVIM的每一种功能,都有无限可能,因此,你也可以在上面几个字母前加上数字,比如 9w 2h,看它的反应。

  体验自动补全:i进来吧,到目前为止还没写过字呢!为简单起见,你直接把用鼠标放到中文的下一行,把 Eight Do's and Eight Don'ts 输入一遍。但是,输入一个E,先别动!按ctrl+p是不是自动补全了?

  体验大小写(每次操作后,都用u恢复原状),试一下g~~和guu和gUU和g??(g??后可以不按u,再按一次g??也能恢复原状)

  神奇吗?这还是VIM功能的单个表演,真正的高手是把它们组合在一起,完成你自己独特的编辑需求。

3.11 体验语法高亮和折叠

  此部分讲起来太复杂。如果你有其他编辑器如UltraEdit基础,会有助于你理解。但VIM在此方面的强大灵活,UltraEdit是难忘其项背的。

  仍然是笔者编辑的原文件,为简化计,请下载test2.txt;下载tx1.vim并保存在d:\program files\vim\vimfiles\syntax\tx1.vim

  用VIM打开(比如要打开d:\test2.txt,请在VIM中:tabnew d:\test2.txt)它。平平无奇是吗?这是因为VIM并不知道这个文件要加亮。键入一个命令:setf tx1,这就相当于告诉VIM此文件的类型是tx1,所以就按照刚下载的tx1.vim进行高亮和折叠。

世界第二的VIM:普通人的编辑利器(下)

图4

  此时你会发现test2.txt完全折起来了。如何打开?你可用鼠标点最左边的+,当然,也可以用命令zr或zR打开(zR打开全部;zr打开当前;zM折叠全部;zm折叠当前)。打开后,看到高亮效果了吧。可以对文字设定前景色、背景色、粗、斜、下划线风格。

3.12 加密文件

  文本文件打开最快,编辑起来最容易,并且在VIM中查找非常方便。因此,笔者用它来记日记,并作为通讯录。但是安全问题怎么办呢?很简单,VIM本身即可加密(录然解密也要用VIM)。在上述打开的文件中键入:X(是大写X),VIM就提示你设定密码,安全起见要确认第2次。然后,保存(键入:w)。把VIM或此文件关闭,再打开时,就要输入密码了。只有你输入正确的密码,才能得到正确的文件。

四、xbeta的应用

  VIM和Total Commander一样,笔者把它们都设定为开机自动运行,其应用不可胜数。

  比如说通讯录管理,笔者未用任何软件,就用VIM管理一个address.txt。它可以实现:快速启动(在VIM中定义了书签,键入`A就会打开),加密(用VIM的:X),超强搜索(无须多说),分组折叠(fold),email和电话号的高亮显示(自定义语法文件)吧。

  再比如,笔者会用VIM来辅助word, excel, bbs发文,安全删除文件,制作精简的五笔词库等。具体可参见 《我常用的VIM功能》,《活学善用gVIM,提高工作效率:实例篇(合集)》,《用gVIM打造个性化记事本》等文章。

  如图5和图6,分别是笔者的个性化txt示例,和用VIM写此篇文章时的情况。

世界第二的VIM:普通人的编辑利器(下)

图5

世界第二的VIM:普通人的编辑利器(下)

图6

五、后记

  这篇文章比最初计划写得长很多,但仍感觉很多非常优秀的功能没有提到。比如,眼下写这篇文章,当然用VIM。但是因为有插图,所以用了htm格式。在插入图片时,只要输入img,VIM会自动换为“<img src="">”,并把光标放到两个引号中间,以便于输入图片名称。输入lnk后,VIM会替换为“<a href=""></a>”。当想看一下效果时,只要:! g:\study\it\pconline\vim\xbeta-vim.htm 它就自动在浏览器中打开了。而这一个长长的路径,因为有了自动补全和命令行历史,也非常容易。而当一些url还未确定,需要标注时,就用一个`1,VIM就会以醒目的红色块标出来,一目了然。而下次再打开此文件,它会记得最后编辑的位置。

  在用VIM之前,笔者曾试过几十种pad和editor,包括长期用Editpad,也曾经比较精通过UltraEdit,也曾经测过EmEditor, EditPlus等。但用了VIM之后,就不再关心windows世界的成千上万的编辑器。因为使用它们的逻辑是“如果有新需求,只能等软件升级或换一个软件”,而使用VIM的逻辑则是“如果有新需求,请做个性化配置或下载附件插件”。

  VIM在手,夫复何求!

  最后,向VIM所代表的追求卓越、开源共享的精神致敬!并希望有责任感的用户逐渐减少盗版!

爱问(iAsk.com)



论坛】【收藏此页】【 】【多种方式看新闻】【下载点点通】【打印】【关闭




科技时代意见反馈留言板 电话:010-82628888-5595   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2006 SINA Inc. All Rights Reserved

新浪公司 版权所有