为什么我不能用 Vim 中的 netrw 在两个新窗口中打开两个文件?

为什么我不能用 Vim 中的 netrw 在两个新窗口中打开两个文件?

如果我打开 Vim 的文件资源管理器到当前目录,我可以在新窗口中打开键打开文件o。我使用键序列在打开的文件和文件列表之间切换焦点CTRL-w w。到目前为止一切顺利。

但是,如果我将焦点转移到文件资源管理器并使用 键打开另一个文件o,则会发生这种情况:创建一个显示文件列表的新窗口,并且显示先前打开的文件的窗口被聚焦。我无法使用按键序列切换到任何一个文件列表窗口CTRL-w w。为什么会发生这种情况?

如何在新窗口中打开第二个文件,以及如何在不同的窗口之间移动光标?

答案1

当遇到这种“奇怪”的行为时,有两件事很重要:

  1. 尽量减少其他影响;例如暂时禁用其他插件和不相关的配置。~/.vimrc
  2. 这可能是一个错误;升级到最新可用的 Vim 版本(取决于你的平台)和插件(最新网络可以找到版本这里)。
  3. 如果您无法升级,至少找到并搜索变更日志/问题跟踪器/邮件列表;其中可能会有关于该问题的提示。

答案2

从一张白纸开始(* 表示焦点)...

+------------------------------+
| *                            |
|                              |
|                              |
|                              |
|                              |
|                              |
|                              |
|                              |
+------------------------------+
  1. :Ex应使用 netrw 列表替换当前空的缓冲区:

    +------------------------------+
    | * netrw                      |
    |                              |
    |                              |
    |                              |
    |                              |
    |                              |
    |                              |
    |                              |
    +------------------------------+
    
  2. 点击o后将在新的水平分割窗口中打开所选文件并赋予其焦点:

    +------------------------------+
    | * file 1                     |
    |                              |
    |                              |
    |                              |
    +------------------------------+
    | netrw                        |
    |                              |
    |                              |
    +------------------------------+
    
  3. 返回上一个窗口(无论它是什么,无论在哪里)的映射是<C-w>p。此时,使用此快捷方式应该将焦点放在 netrw 列表上:

    +------------------------------+
    | file 1                       |
    |                              |
    |                              |
    |                              |
    +------------------------------+
    | * netrw                      |
    |                              |
    |                              |
    +------------------------------+
    
  4. 选择一个新文件并点击o应该在第二个水平分割窗口(位于 netrw 窗口正上方,在它和第一个文件的窗口之间)中打开它并给予它焦点:

    +------------------------------+
    | file 1                       |
    |                              |
    +------------------------------+
    | * file 2                     |
    |                              |
    +------------------------------+
    | netrw                        |
    |                              |
    +------------------------------+
    
  5. 此时,您可以使用 返回到网络列表,或使用(前进)或(后退)<C-w>p循环浏览窗口,或者使用或阅读。<C-w>w<C-w>W<C-w>hjkl:h window-move-cursor

相关内容