我有一个输入文件(c),其中包含以下内容:
/** doxygen comment for enum member1 */
COMMON_PREFIX_name1 = 1,
/** doxygen comment for enum member2 */
COMMON_PREFIX_name2 = 2,
/** doxygen comment for enum member3 */
COMMON_PREFIX_name3 = 3,
/** doxygen comment for enum member4 */
COMMON_PREFIX_name4 = 4,
...
我可以使用Vim按名称排序定义... nameWhatever并将注释保留在定义之上?
答案 0 :(得分:6)
我提出以下一系列行动。
加入成对的行。
:g/^\s*COMMON_PREFIX_/-j!
按变量名称对连接的行进行排序。
:sort/\*\/\s*COMMON_PREFIX_/
将已排序的行拆分回来。
:g/\*\/\zs\ze\s*COMMON_PREFIX_/s//\r/
您可以将所有三个命令作为一个命令运行:
:exe'g/^\s*COMMON_PREFIX_/-j!' | sort/\*\/\s*COMMON_PREFIX_/ | g/\*\/\zs\ze\s*COMMON_PREFIX_/s//\r/