1

我想使用gg=GVIM 命令缩进所有文件。有没有写一个脚本来做到这一点?

我想它可能是这样的

find . | xargs -n 1 | vim [ with some option to indent ]

我很确定vim -c可能会有所帮助,但不确定什么是gg=G等效的..

4

3 回答 3

4

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 也使用这种机制。

于 2013-05-07T16:42:55.267 回答
0

您可以在 vim 中执行以下所有操作。

:args `find .`
:argdo normal gg=G
:argdo w

这会构建argslist然后gg=G在 argslist 中的每个文件上运行正常命令。然后我们将每个文件保存在 argslist 中。注意:这需要set hidden.

Vimcast的 Drew Neil有一些关于这个主题的精彩截屏视频:

如需更多帮助,请参阅:

:h argslist
:h 'hidden'
于 2013-05-07T17:32:09.000 回答
0

您可以使用bufdo将命令应用于所有缓冲区,并normal gg=G运行正常模式命令gg=G。并wqall拯救他们所有人。

于 2013-05-07T16:07:32.990 回答