繁体   English   中英

使用外部命令使用VIM格式化代码

[英]Format code with VIM using external commands

我知道使用VIM我可以使用格式化C ++代码

gg=G

现在我必须格式化30个文件,因此手动操作变得乏味。 我看看如何将外部命令传递给VIM,所以我试过了

vim -c gg=G -c wq file.cpp

但它不起作用。

你能给我一个提示吗?

谢谢

为什么不在缓冲区中加载所有文件并使用bufdo在所有文件上执行命令?

:bufdo "execute normal gg=G"

改变-c gg=G-c 'normal! gg=G' -c 'normal! gg=G' -c switch仅接受ex模式命令, gg=G是两个普通模式命令。

我更喜欢对:bufdo回答略有改动。 我更喜欢arg列表而不是缓冲区列表,所以我不需要担心关闭当前缓冲区或打开新的vim会话。 例如:

:args ~/src/myproject/**/*.cpp | argdo execute "normal gg=G" | update
  • args使用通配符设置arglist( **将匹配当前目录以及子目录)
  • | 让我们在一行上运行多个命令
  • argdo在每个arg上运行以下命令(它将吞没第二个|
  • execute可防止normal吞下下一个管道。
  • normal运行以下正常模式命令(您首先使用的是什么)
  • update类似于:w ,但仅在修改缓冲区时保存。

这个:args ... | argdo ... | update :args ... | argdo ... | update :args ... | argdo ... | update模式对于任何类型的项目范围文件操作非常有用(例如,通过'%s / foo / bar / ge'搜索和替换或设置统一fileformat或文件fileencoding )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM