首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用外部命令使用VIM格式化代码

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

Stack Overflow用户
提问于 2010-07-10 00:03:45
回答 3查看 557关注 0票数 2

我知道使用VIM我可以只用下面的代码格式化C++代码

代码语言:javascript
复制
gg=G

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

代码语言:javascript
复制
vim -c gg=G -c wq file.cpp

但它不起作用。

你能给我一个提示吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-10 00:12:37

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

代码语言:javascript
复制
:bufdo "execute normal gg=G"
票数 8
EN

Stack Overflow用户

发布于 2010-07-10 02:00:18

-c gg=G更改为-c 'normal! gg=G'-c交换机只接受ex模式命令,gg=G是两个正常模式命令。

票数 5
EN

Stack Overflow用户

发布于 2010-07-16 02:55:25

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

代码语言:javascript
复制
:args ~/src/myproject/**/*.cpp | argdo execute "normal gg=G" | update

  • args使用通配符( subdirectories)
  • |将与当前目录匹配,并允许我们在一个line
  • argdo上运行多个命令在每个参数上运行以下命令(它将吞噬第二个|)
  • execute防止normal吞噬下一个pipe.
  • normal运行以下正常模式命令(您在第一个place)
  • update中使用的类似于**,但仅在修改缓冲区时保存。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3214428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档