我想使用gg=G
VIM 命令缩进所有文件。有没有写一个脚本来做到这一点?
我想它可能是这样的
find . | xargs -n 1 | vim [ with some option to indent ]
我很确定vim -c
可能会有所帮助,但不确定什么是gg=G
等效的..
vim 有两个选项你可以看看:(来自 man vim)
-s {scriptin}
The script file {scriptin} is read. The characters in the file are interpreted as if you had typed them. The same can be done with the command
":source! {scriptin}". If the end of the file is reached before the editor exits, further characters are read from the keyboard.
和
-w {scriptout}
All the characters that you type are recorded in the file {scriptout}, until you exit Vim. This is useful if you want to create a script file to be
used with "vim -s" or ":source!". If the {scriptout} file exists, characters are appended.
这意味着,vim -w script
例如,您可以记录您的键序列,gg=GZZ
然后您可以vim -s script file
我认为 vimgolf 也使用这种机制。
您可以在 vim 中执行以下所有操作。
:args `find .`
:argdo normal gg=G
:argdo w
这会构建argslist
然后gg=G
在 argslist 中的每个文件上运行正常命令。然后我们将每个文件保存在 argslist 中。注意:这需要set hidden
.
Vimcast的 Drew Neil有一些关于这个主题的精彩截屏视频:
如需更多帮助,请参阅:
:h argslist
:h 'hidden'
您可以使用bufdo
将命令应用于所有缓冲区,并normal gg=G
运行正常模式命令gg=G
。并wqall
拯救他们所有人。