【发布时间】:2019-05-01 21:15:21
【问题描述】:
在 IntelliJ 中处于插入模式时,键入 < 需要 timeoutlen 时间(默认为 1000 毫秒,这对于许多其他命令来说是合理且有用的;将 timeoutlen 更改为 10 毫秒使 < 基本上立即生效)。
在 Vim 中处于插入模式时,立即输入 <。
:imap < 在 IntelliJ 或 Vim 中都没有显示结果。
如何确定 IntelliJ 为何会延迟此击键?我该如何解决这个问题?
我的 ~/.ideavimrc 符号链接到我的 ~/.vim/vimrc,但我没有安装任何插件。我定义了一些似乎没有做任何事情的自定义函数,但它们都没有在映射中使用<。
当我在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/…
-
虽然很有趣,但这无助于我不相信我有任何
<的重新映射应该只在<上导致此超时。 -
您能否检查一下
:imap的输出中是否包含<? (命令中没有<)?可能是 IdeaVim 没有解析映射命令中的一些 Vim 特殊键,并且由于特殊键以<开头,因此可能会导致错误。 -
@AndreyVlasovskikh,我确实有这些,但根据 y.bedrov 提供的链接,“
映射从 0.34 开始被忽略。”那是 5 年前的事了。 -
@jeremysprofile 你能在你的问题中分享你所有的映射吗?到目前为止,尚不清楚如何重现此问题。仅供参考,这是 the source code 用于解析 Vim 映射键。
标签: intellij-idea ideavim