【问题标题】:How do you reload all vim windows at once?如何一次重新加载所有 vim 窗口?
【发布时间】:2020-09-29 20:44:15
【问题描述】:

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

【问题讨论】:

    标签: vim


    【解决方案1】:

    :windo 命令对 Windows 的作用类似于 :bufdo 对缓冲区的作用。那就是:

     :windo e
    

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

     :bufdo e
    

    将遍历缓冲区列表中的所有缓冲区(即,没有“隐藏”缓冲区)并执行相同的命令。

    请注意,缓冲区列表中可能有当前未显示在任何窗口中的缓冲区。所以是用:windo e还是:bufdo e就看你想要什么了。

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

    【讨论】:

    • 类似地:tabdo e 会重新加载所有选项卡中的所有窗口
    • 嗯,我没试过,但要涵盖拆分窗口的情况,不需要:tabdo exec 'windo e'吗?
    • 你说得对——我的错。 :tabdo e 仅重新加载每个选项卡中的第一个窗口。谢谢 :) 解释了我昨天遇到麻烦的原因
    • 我注意到这会删除某些缓冲区上的语法突出显示。我不得不去那些缓冲区并在每个缓冲区上手动输入:e。有没有办法保留语法突出显示?我正在使用 Vim 8.0(2016 年 9 月 12 日)。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      怎么样

      :bufdo e
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-14
        • 1970-01-01
        • 1970-01-01
        • 2010-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多