Vim 在VI中运行一组正则表达式
我有一个要在我的C代码文件上运行的正则表达式列表。它们是简单的格式化工具,在我的代码被审查时可以省去我的麻烦 给你 这将在一个空行中删除两个或多个空行Vim 在VI中运行一组正则表达式,vim,Vim,我有一个要在我的C代码文件上运行的正则表达式列表。它们是简单的格式化工具,在我的代码被审查时可以省去我的麻烦 给你 这将在一个空行中删除两个或多个空行 :%s/\n\{3,}/\r\r/e 这会在注释的末尾添加缺少的空格,例如/*诸如此类*/到/*诸如此类*/ :%s/\([^ *]\)\*\//\1 \*\//gc 这会在注释的开头添加缺少的空格,例如/blah blah/to/*blah blah*/注意,它忽略了/** :%s/\/\*\([^ *]\)/\/\* \1/gc 打开
:%s/\n\{3,}/\r\r/e
这会在注释的末尾添加缺少的空格,例如/*诸如此类*/到/*诸如此类*/
:%s/\([^ *]\)\*\//\1 \*\//gc
这会在注释的开头添加缺少的空格,例如/blah blah/to/*blah blah*/注意,它忽略了/**
:%s/\/\*\([^ *]\)/\/\* \1/gc
打开大括号后删除空行{
:%s/{\s*$\n\{2,}/{\r/gc
在关闭大括号之前删除空行}
:%s/\n\{2,}\(\s*\)}/\r\1}/gc
在注释中,如果缺少TODO抛出,则在逗号后添加空格;如果没有模式匹配,则在错误E16后添加空格
:g/\/\*/ ,/\*\// s/,\([^ ]\)/, \1/gc
我已将这些文件保存在一个名为fix.txt的文件中。有没有一种方法可以让我在VI中一个接一个地运行它们?差不多
:run fix.txt ?
您必须执行:
:source fix.txt
请参阅:help:source
“将此函数放入vimrc文件中,并用f调用它们
" put this function in your vimrc file and call them with <leader>f
" to more information read :help leader
" also read :help keepjumps
fun! FixSourceCode()
:%s/\n\{3,}/\r\r/e
:%s/\([^ *]\)\*\//\1 \*\//gc
:%s/\/\*\([^ *]\)/\/\* \1/gc
:%s/{\s*$\n\{2,}/{\r/gc
:%s/\n\{2,}\(\s*\)}/\r\1}/gc
:g/\/\*/ ,/\*\// s/,\([^ ]\)/, \1/gc
Endfun
nmap <silent> <leader>f :keepjumps call FixSourceCode()<cr>
“要了解更多信息,请阅读:帮助领导者
另请阅读:帮助保持跳跃
有趣!FixSourceCode()
:%s/\n\{3,}/\r\r/e
:%s/\([^*]\)\*\/\1\*\//gc
:%s/\/\*\([^*]\)/\/\*\1/gc
:%s/{\s*$\n\{2,}/{\r/gc
:%s/\n\{2,}\(\s*\)}/\r\1}/gc
:g/\/\*/,/\*\//s/,\([^]\)/,\1/gc
结束
nmap f:keepjumps调用FixSourceCode()