我有一个正常的表达式列表,我想在我的C代码文件上运行。它们是简单的格式化内容,在我的代码被审核时可以省去麻烦。
他们在这里
这会在一个空白行中删除2个或更多空行
:%s/\n\{3,}/\r\r/e
这会在评论的末尾添加缺少的空格,例如/ * blah blah * / to / * blah blah * /
:%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 ?
答案 0 :(得分:6)
你必须执行:
:source fix.txt
请参阅:help :source
。
答案 1 :(得分:0)
" 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>