【问题标题】:Unable to get out of terminal window inside VIM using VIM key bindings无法使用 VIM 键绑定退出 VIM 内的终端窗口
【发布时间】:2020-01-29 00:41:14
【问题描述】:

以下是重现问题的步骤: 1. 在 vi​​m 中打开一个文件(在一个窗口中)。
2. 垂直拆分打开终端(在另一个窗口中)。
3. 如果您还没有将焦点移到终端窗口上。
4. 在终端内运行一些命令(如 pwd、cd 等)。
5. 现在,您(至少我)无法使用 VIM 键绑定(如 (<C-w> + h/j/k/l))返回文件窗口。

谁能告诉我如何解决它?

编辑:找到答案。您需要先在终端窗口内执行<C-\><C-n> 以进入正常模式,然后您可以使用<C-w>h/j/k/l 导航。您还可以创建一个更简单的键绑定来执行此操作。

【问题讨论】:

  • 我对您所描述的内容感到迷茫。如果您要打开第二个窗口,那么 vim 绑定不会帮助您切换窗口,您可以使用窗口管理器使用的任何内容(例如 alt+tab)
  • 所以使用 VIM 8+ 你可以在 vim 中打开终端(使用 :term 命令)。我的意思是,在一个 vim 实例中打开两个窗口,一个包含一些文件,另一个包含一个终端。现在在终端窗口(在 vim 内)运行一些虚拟命令。现在您不能使用 h/j/k/l 在窗口之间导航。无论如何,我从公司里的人那里找到了解决方案。将用答案更新帖子。
  • @SubhadeepSamantaray 您应该将其作为答案发布,而不是对您的问题进行编辑。请这样做。

标签: vim


【解决方案1】:

您需要先在终端窗口内执行<C-\><C-n> 以进入正常模式,然后您可以使用<C-w>h/j/k/l 导航。您还可以创建更简单的键绑定来轻松完成此操作,如下所示:

tnoremap <C-w>h <C-\><C-n><C-w>h
tnoremap <C-w>l <C-\><C-n><C-w>l
tnoremap <C-w>j <C-\><C-n><C-w>j
tnoremap <C-w>k <C-\><C-n><C-w>k

使用上述绑定,您始终可以使用&lt;C-w&gt;h/j/k/l 进行导航,无论您是在编辑器窗口还是终端窗口中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-25
    • 2015-07-10
    • 2020-12-22
    • 2015-01-12
    • 2016-01-27
    • 2021-08-17
    • 2018-08-01
    • 2020-04-28
    相关资源
    最近更新 更多