我有一个包含很多全名的文件,例如 ....
Light Machine Gun
Statistical Analysis System
etc
我想捕获一行中每个单词的第一个字符,并想制作一个首字母缩写词。例如轻机枪将是LMG等。我想在VI编辑器中将其记录为宏并在整个文件中运行它。如果有人可以帮助我,那会很棒吗?提前致谢。
我有一个包含很多全名的文件,例如 ....
Light Machine Gun
Statistical Analysis System
etc
我想捕获一行中每个单词的第一个字符,并想制作一个首字母缩写词。例如轻机枪将是LMG等。我想在VI编辑器中将其记录为宏并在整个文件中运行它。如果有人可以帮助我,那会很棒吗?提前致谢。
假设每行一个名称并且单词是空格分隔的,则以下工作:
%s/\(\w\)\w*\ */\1/g
如果您还想将每个字母大写,请添加一个大写标志 ( \u
):
%s/\(\w\)\w* */\u\1/g
“非常神奇”的版本(见:help /magic
):
%s/\v(\w)\w*\s*/\u\1/g
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/g
Thor 建议的正则表达式可以正常工作。