3

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

Light Machine Gun
Statistical Analysis System
etc

我想捕获一行中每个单词的第一个字符,并想制作一个首字母缩写词。例如轻机枪将是LMG等。我想在VI编辑器中将其记录为宏并在整个文件中运行它。如果有人可以帮助我,那会很棒吗?提前致谢。

4

2 回答 2

5

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

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

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

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

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

%s/\v(\w)\w*\s*/\u\1/g
于 2012-12-11T10:35:48.290 回答
3

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

Light Machine Gun Statistical Analysis System -> LMGSAS

只需输入:

:ab LMGSAS Light Machine Gun Statistical Analysis System

每当您键入 LMGSAS 时,它都会为您替换。

用于:ab列出所有缩写,取消缩写una xxxxx。最后abc清除一切。

编辑:我误解了你的问题,如果你想去的话 - > 缩写,那么s/\(\w\)\w*\s*/\1/gThor 建议的正则表达式可以正常工作。

于 2012-12-11T10:38:54.327 回答