[英]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.