使用VIM制作首字母缩略词?

时间:2012-12-11 10:29:25

标签: vim

我有一个包含很多全名的文件,如....

Light Machine Gun
Statistical Analysis System
etc

我想捕捉一行中每个单词的第一个字符,并希望制作一个首字母缩略词。例如Light Machine Gun将是LMG等。我想在VI编辑器中将其记录为宏并将其运行在整个文件中。如果有人能帮助我那会很棒吗?提前谢谢。

2 个答案:

答案 0 :(得分:5)

假设每行一个名称并且单词是空格分隔的,则以下工作:

%s/\(\w\)\w*\ */\1/g

如果您还要将每个字母大写,请添加一个大小写标记(\u):

%s/\(\w\)\w* */\u\1/g

“非常神奇”的版本(见:help /magic):

%s/\v(\w)\w*\s*/\u\1/g

答案 1 :(得分:3)

Vim可以定义首字母缩略词,称为缩写,说你想要

Light Machine Gun Statistical Analysis System -> LMGSAS

输入:

:ab LMGSAS Light Machine Gun Statistical Analysis System

每当你输入LMGSAS时,它都会替换它。

使用:ab列出所有缩写,una xxxxx以取消缩写。最后abc清除了所有内容。

编辑:我误解了你的问题,如果你试图去,话语 - >缩写,然后Thor建议的正则表达式s/\(\w\)\w*\s*/\1/g工作正常。