如果我打开 Vim 的文件资源管理器到当前目录,我可以在新窗口中打开键打开文件o
。我使用键序列在打开的文件和文件列表之间切换焦点CTRL-w w
。到目前为止一切顺利。
但是,如果我将焦点转移到文件资源管理器并使用 键打开另一个文件o
,则会发生这种情况:创建一个显示文件列表的新窗口,并且显示先前打开的文件的窗口被聚焦。我无法使用按键序列切换到任何一个文件列表窗口CTRL-w w
。为什么会发生这种情况?
如何在新窗口中打开第二个文件,以及如何在不同的窗口之间移动光标?
答案1
当遇到这种“奇怪”的行为时,有两件事很重要:
- 尽量减少其他影响;例如暂时禁用其他插件和不相关的配置。
~/.vimrc
- 这可能是一个错误;升级到最新可用的 Vim 版本(取决于你的平台)和插件(最新网络可以找到版本这里)。
- 如果您无法升级,至少找到并搜索变更日志/问题跟踪器/邮件列表;其中可能会有关于该问题的提示。
答案2
从一张白纸开始(* 表示焦点)...
+------------------------------+
| * |
| |
| |
| |
| |
| |
| |
| |
+------------------------------+
:Ex
应使用 netrw 列表替换当前空的缓冲区:+------------------------------+ | * netrw | | | | | | | | | | | | | | | +------------------------------+
点击
o
后将在新的水平分割窗口中打开所选文件并赋予其焦点:+------------------------------+ | * file 1 | | | | | | | +------------------------------+ | netrw | | | | | +------------------------------+
返回上一个窗口(无论它是什么,无论在哪里)的映射是
<C-w>p
。此时,使用此快捷方式应该将焦点放在 netrw 列表上:+------------------------------+ | file 1 | | | | | | | +------------------------------+ | * netrw | | | | | +------------------------------+
选择一个新文件并点击
o
应该在第二个水平分割窗口(位于 netrw 窗口正上方,在它和第一个文件的窗口之间)中打开它并给予它焦点:+------------------------------+ | file 1 | | | +------------------------------+ | * file 2 | | | +------------------------------+ | netrw | | | +------------------------------+
此时,您可以使用 返回到网络列表,或使用(前进)或(后退)
<C-w>p
循环浏览窗口,或者使用或阅读。<C-w>w
<C-w>W
<C-w>hjkl
:h window-move-cursor