如何在几个文件上运行“gg = G”?

时间:2015-02-09 04:55:38

标签: shell vim indentation

在vim中,gg=G可以很好地重新缩进当前文件,我想在几个文件上执行此操作。

我想做这样的事情:

files=`find $1 -type f`
for file in $files
do
    vim -e -s -n "+gg=G|wq" $file
done

问题是gg=G不是命令(如果你在vim中键入:gg=G,它会抛出错误),所以它不起作用......

2 个答案:

答案 0 :(得分:2)

我想我找到了! (当我发布问题后10分钟,即使我之前搜索了4个小时)

files=`find $1 -type f`
for file in $files
do
    vim -e -s -n "+normal gg=GZZ" $file
done

答案 1 :(得分:1)

在vim中打开要修改的文件

vim *

然后使用:bufdo在所有已加载的缓冲区中执行命令

:bufdo normal 0=G

最后,保存所有文件并退出

:wqa