【问题标题】:IntelliJ ideaVim - timeoutlen with angle bracket <IntelliJ ideaVim - 带尖括号的 timeoutlen <
【发布时间】:2019-05-01 21:15:21
【问题描述】:

在 IntelliJ 中处于插入模式时,键入 &lt; 需要 timeoutlen 时间(默认为 1000 毫秒,这对于许多其他命令来说是合理且有用的;将 timeoutlen 更改为 10 毫秒使 &lt; 基本上立即生效)。

在 Vim 中处于插入模式时,立即输入 &lt;

:imap &lt; 在 IntelliJ 或 Vim 中都没有显示结果。

如何确定 IntelliJ 为何会延迟此击键?我该如何解决这个问题?

我的 ~/.ideavimrc 符号链接到我的 ~/.vim/vimrc,但我没有安装任何插件。我定义了一些似乎没有做任何事情的自定义函数,但它们都没有在映射中使用&lt;

当我在ideavim 中输入imap 时,我得到了这个:

i  <C-Q>       * <Esc>:q!<CR><Tab><Tab>" quit without saving with C-q
i  <C-S>       * <Esc>:wq!<CR><Tab><Tab>" save and exit files with C-s
i  <C-Y>       * <Esc>:set list!<CR>:set number!<CR>i
i  <MiddleMouse> * :set paste<CR><S-Ins>:set nopaste<CR>

【问题讨论】:

  • 字符将在 timeoutlen 秒后或输入下一个字符时出现。在原始 Vim 中,一个映射字符显示在光标上并在超时后放入文档中,而在 IdeaVim 中,在超时期间没有任何视觉效果:youtrack.jetbrains.com/issue/…
  • 虽然很有趣,但这无助于我不相信我有任何 &lt; 的重新映射应该只在 &lt; 上导致此超时。
  • 您能否检查一下:imap 的输出中是否包含&lt;? (命令中没有&lt;)?可能是 IdeaVim 没有解析映射命令中的一些 Vim 特殊键,并且由于特殊键以 &lt; 开头,因此可能会导致错误。
  • @AndreyVlasovskikh,我确实有这些,但根据 y.bedrov 提供的链接,“ 映射从 0.34 开始被忽略。”那是 5 年前的事了。
  • @jeremysprofile 你能在你的问题中分享你所有的映射吗?到目前为止,尚不清楚如何重现此问题。仅供参考,这是 the source code 用于解析 Vim 映射键。

标签: intellij-idea ideavim


【解决方案1】:

问题在于 IdeaVim 不理解您配置中的 &lt;MiddleMouse&gt; 特殊键,并将其视为键序列 &lt;Mi、...、&gt;

随时向 IdeaVim 问题跟踪器提交错误,以处理或忽略 &lt;MiddleMouse&gt; 键。

作为一种解决方法,您可以注释掉此映射或将其放入不是来自 ~/.ideavimrc 的配置文件中。

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 2011-09-28
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多