【问题标题】:VIM 8.2 Term Buffer ShortcutVIM 8.2 术语缓冲区快捷方式
【发布时间】:2020-03-14 14:57:31
【问题描述】:

在我的工作流程中,我映射了 ctr+right 和 Ctr+left 来切换 VIM 中的缓冲区。但是,每当我到达终端缓冲区时,终端都不会移动到下一个缓冲区。我认为关键不是交给vim,而是用term。如何使某些键通过终端,这样我就可以在没有鼠标的情况下切换缓冲区?我正在使用带有 GVIM 8.2 的 Windows 10。

【问题讨论】:

    标签: vim


    【解决方案1】:

    这可能发生在您的终端处于终端插入模式时,捕获击键并将它们发送到终端内运行的程序。

    您仍然可以使用:tnoremap 命令为这些键创建映射。见:help :tnoremap:help mapmode-t

    例如:

    tnoremap <C-Left> <C-w>h
    tnoremap <C-Right> <C-w>l
    

    (不确定这些是您在正常模式下使用的实际映射,或者您是否使用&lt;C-w&gt;W&lt;C-w&gt;w。无论如何,您明白了,使用tnoremap 在终端中复制映射- 插入模式也是如此。)

    更新:根据您的评论,您正在使用这些映射切换缓冲区,因此这些应该可以工作:

    tnoremap <C-Left> <C-w>:bp<CR>
    tnoremap <C-Right> <C-w>:bn<CR>
    

    这些与普通模式映射不同,因为它们需要 &lt;C-w&gt; 前缀,这是从终端插入模式下的终端输入 Ex 命令所必需的。

    【讨论】:

    • 谢谢,我通常用 term++hidden 创建终端。我通过参考您发布的文档进行了这些映射。 (tnoremap :bp tnoremap :bn)
    猜你喜欢
    • 2018-07-13
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多