3 04 2008

Vim快速提取行内容

Published by muzuiget at 8:28 下午 under Vim

在VeryCD的一个纪录 片页面,把下载链接的文本复制到Vim里,想把《流言终结者》系列的行提取出来,
《流言终结者》系列真是超好看的,刻碟收藏,噢噢。要做个目录,也就是抽出

[2008.01.20]Discovery.Channel.-.流言終結者:巨物迷思.[04718C14].avi 详情

类似的行来到一个文本文件里,要处理的文本内容如图

要提取文本

方法一:
善用佳软善用Vim:实例系列(1)一文有类似技巧:为长篇txt生成可跳转目录
不过我用和“:lv”命令,“:lv”和“:vimgrep” 类似,但使用当前窗口的位置列表而不是quickfix列表,使用

:lv /流言/ %

获取行,然后再用

:lw

打开当前窗口的位置列表,然后按Ctrl+w,T转到新标签页打开,继续用

:sav test2.txt

另存为一份,用

:set ma

把文件设置为可写,最后用替换命令

%s/^.*[20/[20/gc

把行号删除掉,最好保存,这样做步骤还不少。

提取结果

方法二:
直接用ex命令

:g/流言/

提取结果2

这样就能显示出符合表达式的行出来,不过不是插入的文件中,查了手册没找到怎么把ex命令的结果输出到一个新文件中,也就是类似用

:r!dir

命令那样,把输出插入文件。不过后来还有找到个好方法,使用

:g/流言/normal "AY

就行了,normal表示对其使用普通模式下的命令,“”AY”表示复制行附加到a寄存器中(大写表示附加),然后就

:new

新建一个文件,再

"ap

把寄存器内容插入去,娃哈哈哈哈,真简单。

Trackback URI | Comments RSS

Leave a Reply