善用佳软 » 旧.text/Vim » 本文: 文章信息 阅读评论 发表评论

善用Vim:实例系列(2)

[本文说明]写过多篇Vim应用小文,为方便阅读,现做整理,并删除旧文。以后凡Vim文章,皆归入此系列。另,为便于搜索,统一vim、gvim及大小写为Vim。 –xbeta 2007年12月20日
[本文目录] 1 处理word目录 2 改变大小写 3 制作极点单字库

1 处理word目录

任务:

  从word中把目录复制出来,去除多余信息(标题编号、页码)

命令:

  %s/d|.|s//gc
结果:
  转瞬间200多行1000多字符烟消云灭
附图:

  

2 改变大小写

刚才在BBS上回答了一个问题,当然,这个问题并不复杂。就是“如何把一个文本文件中的大写字母全部替换成小写”。http://www.newsmth.net/bbscon.php?board=NewSoftware&id=840511



  Word当然可以。



  但作为文本,首先想到的还是gVIM,用它如何操作呢?

  打开文件后,不用任何鼠标、菜单,只须在键盘上按下“ggguG”就行了。

  极品软件就是这样:唯有功能强到极致,操作才能简到极致!



解释一下:ggguG分作三段gg gu G

gg=光标到文件第一个字符

gu=把选定范围全部小写
G=到文件结束

3 制作极点单字库

用五笔,我习惯输入单字。为此,就要把词库中的多字词去除。
(之所以不设定为单字模式,因为定义了一些其他词,如bis=http://blog.sina.com.cn/m/xbeta等)

极点有一个这样的工具,但我用的不熟。

想到了强大的VIM文本编辑器,一试,果然成功,并且简便。

与大家分享如下。(如果试验请谨慎,先做好备份。本文作者不对后果承担任何责任)

并感谢杜老师在极点5.0中更正了极点设置后VIM会崩溃的问题。
极点词库格式很简单,编码1-4字母,几个词,用空格分开。例如下:

  |aaff 蓬蓬勃勃 苷

  |aafg 葡萄干

  |aafh 苏东坡

  |aafn 工场

  |aafo 蘜
要去除多于1字的词语,只要2行命令就OK。

用VIM打开词库文件。

执行命令
  :.,$s/ S{2,}( |$)/
/gc
  :.,$g/^a{1,4} $/normal
dd
保存,就完了。
只要2行命令,而每条命令又如此古怪,大家可以想见VIM之功能强大。

  VI是UNIX下文本编辑器的鼻祖。也就是说,基于它有很多改进的分支。

  而VIM则是其中影响力最大的一支。它的第一个版本出现于1976年(哪个软件还有如此长的历史而依然活跃)。

  我以前知道并用过盗版的Ultraedit、Editplus、Emeditor,认识VIM后将它们全舍弃了。

  你能设想VIM是免费开源的吗?

  VIM在windows平台下的版本是gVIM,我用的就是它。

  安装后(包括多国语言文件、插件、语法文件)占空间20M。其实,最少只要一个exe文件不到2M就可以用了。

  有兴趣的可以到华军下载一个。再到网上找找教程,或到水木社区smth.org的VIM版。


:.,$s/ S{2,}( |$)/ /gc

解释如下:

  :表示外部命令

  .,$表示当前行到全文结束

  s表示替换

共有三个/

  前两个//之间是要被替换的旧字符串(正则表达式)。“ S{1,}(
|$)”表示“先有一个空格,再有1-N个非空字符,然后是一个空格或行尾”。

  后两个//之间是要替换为的新字符串,本例中,为一个空格。

  gc表示替换所有匹配的情况,并且每次要用户手工确认(这是为了直观和谨慎,如果有把握,可以不确认,直接执行)。


:.,$g/^a{1,4} $/normal dd
解释如下:

  :表示外部命令

  g表示找到某个字符串,然后执行某个操作

  第一个/之后是要找的字符串,“^a{2,4}
$”表示找“行首,然后是2-4个英文字母,然后空格,然后行尾”

  第二个/之后是要执行的命令,“normal
dd”,在VIM中是删除本行。
(本篇完)

收藏与订阅

 喜欢本文?分享收藏它。   feed.xbeta.info喜欢本站?订阅它:Google | 鲜果 | 抓虾 | 更多

B2:发表评论

Warning: In case of spam, Please input some Chinese! e.g, 你好
 名称(必需)
 Email(非必需)
 链接(非必需)

关闭
Powered by ShareThis