29

我几乎只在控制台中使用 Vim。当我按 退出插入模式时<ESC>,Vim 识别命令有明显的延迟。延迟类似于我按下<leader>键时的延迟,我假设给我时间在映射中输入其他字符。我可以设置一个选项来让 Vim 更快地识别转义键吗?

4

6 回答 6

44

如果您使用的是 tmux,则可能会引入延迟。把它放在你的 ~/.tmux.conf 文件中:

set -s escape-time 0
于 2015-11-19T19:19:38.893 回答
5

明目张胆地从https://stackoverflow.com/a/10856095/157237复制:

您可能需要:help 'timeout'相应地检查和调整设置。如果需要,您可以设置timeoutlen为更短的持续时间(ttimeoutlen默认设置为-1,因此不使用)。

于 2012-10-22T23:05:03.993 回答
2

当您离开插入模式时,您可能会执行一些缓慢的操作。

您可以通过使用 CTRL-C 离开插入模式或使用:au InsertLeave.


编辑:

:iab您还可以使用and检查是否有任何映射或缩写正在等待完成:imap

于 2012-10-23T18:18:01.350 回答
0

我在此页面上找不到有效的答案。我在 iTerm2 中使用 vi 键绑定来快速编辑较大的命令。在进入 vi 命令模式之前,点击 esc 会增加延迟。您可以通过将以下属性添加到您的 z-shell 运行配置来关闭延迟:~/.zshrc

KEYTIMEOUT=1
于 2021-07-27T13:22:07.687 回答
0

可能就是发生在你身上的事情——这就是对我表现出这些症状的原因。

mapping Alt键以便能够使用Meta组合键(在Debian 上的Mate-TerminalKonsole中)之后,我注意到了同样的事情——退出插入模式需要timeoutlen. 这感觉是不可接受的,即使是很短的——但立即timeoutlen使用nmap:)

" Using `map` delays getting out of insert mode by timeoutlen!
for i in range(97,122)
    let c = nr2char(i)
    "exec "map \e".c." <M-".c.">"
    "exec "map! \e".c." <M-".c.">"
    exec "nmap \e".c." <M-".c.">"
endfor
于 2019-10-06T23:15:30.450 回答
0

set noesckeys

帮助esckeys:

'esckeys' 'ek'      boolean (Vim default: on, Vi default: off)
                    global
                    {not in Vi}

    Function keys that start with an <Esc> are recognized in Insert
    mode.  When this option is off, the cursor and function keys cannot be
    used in Insert mode if they start with an <Esc>.  The advantage of
    this is that the single <Esc> is recognized immediately, instead of
    after one second.  Instead of resetting this option, you might want to
    try changing the values for 'timeoutlen' and 'ttimeoutlen'.  Note that
    when 'esckeys' is off, you can still map anything, but the cursor keys
    won't work by default.
    NOTE: This option is set to the Vi default value when 'compatible' is
    set and to the Vim default value when 'compatible' is reset.
于 2019-02-24T14:50:20.967 回答