[译]Vim每日技巧-Golf

今天早上一个朋友让我写一个Vim宏,保留双引号中的内容,而删除其余的所有文本。比如文件内容像这样:
Automotive
Banking
Biotech
……
处理后,应该是这样
Automotive
Banking
Biotech
……
开始,我用下面的序列(忽略了保存宏的命令)
df”f”d$j0 (9个字符)
效果不错,不过我还想改的更短一些:
df”f”D+ (7个字符)
我想,这应该是我能想到的最短的方案了,但是:
df”wD+ (6个字符)
这个是最短的,但是我希望我是错的。

更新:
我的朋友Chris Sutter提出了另外一种方案:
di”Vp (5个字符)
或者如果你还想跳到下一行:
di”Vgp (6个字符)

网友在评论中给出的其他解决方案:
:%s/^.*”\(.*\)”.*$/\1/ (长了点,但是不需要宏)

本篇来源:Daily Vim: Text Editor Tips, Tricks, Tutorials, and HOWTOs: Golf

译注:
df”wD+这个有问题,当引号中的内容不是一个单词时,结果是错误的。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。