你如何一次性重新加载所有的vim窗口?

dan*_*dan 63 vim

我在vim中打开了几个文件,在多个窗口中.是否有一个命令:e将重新加载我打开的所有文件的缓冲区?我需要这个,因为我有时会用另一个编辑器改变一些文件,而它们也是在vim中打开的.

Her*_*itz 97

:windo命令为windows做了什么:bufdo为缓冲区做了什么.那是:

 :windo e
Run Code Online (Sandbox Code Playgroud)

应循环遍历所有可见窗口(即,不是其他选项卡上的窗口,如果有的话)并执行':e'命令.同样:

 :bufdo e
Run Code Online (Sandbox Code Playgroud)

将循环遍历缓冲区列表中的所有缓冲区(即,没有"隐藏"缓冲区)并执行相同的命令.

请注意,缓冲区列表中可能包含当前未在任何窗口中显示的缓冲区.因此,是否使用':windo e'或':bufdo e'取决于你想要什么.

相关帮助在这里:http: //vimdoc.sourceforge.net/htmldoc/windows.html#list-repeat

  • 同样`:tabdo e`将重新加载所有选项卡中的所有窗口 (37认同)
  • 嗯,我还没有尝试,但是要覆盖分裂窗口的情况不需要`:tabdo exec'windo e'`? (8认同)
  • 你是对的 - 我的坏.`:tabdo e`只在每个标签中重新加载第一个窗口.谢谢:)解释了我昨天遇到麻烦的原因 (5认同)

jam*_*san 9

如果设置'autoread'选项,Vim将自动重新加载外部更改的缓冲区(并且没有未保存的更改).