我想使用VIM的gg=G
命令缩进我的所有文件。反正写一个脚本来做那个吗?
我想它可能像
find . | xargs -n 1 | vim [ with some option to indent ]
我很确定vim -c
可能有所帮助,但不确定gg=G
等价物是什么。
答案 0 :(得分:3)
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也使用这种机制。
答案 1 :(得分:0)
您可以使用bufdo
将命令应用于所有缓冲区,并使用normal gg=G
运行普通模式命令gg=G
。并wqall
保存所有内容。
答案 2 :(得分:0)
您可以在vim中完成以下所有操作。
:args `find .`
:argdo normal gg=G
:argdo w
这会构建argslist
,然后在argslist中的每个文件上运行正常命令gg=G
。然后我们将每个文件保存在argslist中。注意:这需要set hidden
。
在Vimcast处的Drew Neil有一些关于这个主题的精彩截屏:
如需更多帮助,请参阅:
:h argslist
:h 'hidden'