[本文说明] 写过多篇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./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中是删除本行。 |
|