Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 在VI中运行一组正则表达式_Vim - Fatal编程技术网

Vim 在VI中运行一组正则表达式

Vim 在VI中运行一组正则表达式,vim,Vim,我有一个要在我的C代码文件上运行的正则表达式列表。它们是简单的格式化工具,在我的代码被审查时可以省去我的麻烦 给你 这将在一个空行中删除两个或多个空行 :%s/\n\{3,}/\r\r/e 这会在注释的末尾添加缺少的空格,例如/*诸如此类*/到/*诸如此类*/ :%s/\([^ *]\)\*\//\1 \*\//gc 这会在注释的开头添加缺少的空格,例如/blah blah/to/*blah blah*/注意,它忽略了/** :%s/\/\*\([^ *]\)/\/\* \1/gc 打开

我有一个要在我的C代码文件上运行的正则表达式列表。它们是简单的格式化工具,在我的代码被审查时可以省去我的麻烦

给你

这将在一个空行中删除两个或多个空行

:%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()