如何禁用vim领导键的超时?

时间:2013-02-06 19:44:10

标签: vim

当我在vim中按 d 时,我的状态行显示d并无限期等待进一步说明。

当我按下我的领导(对我来说)时,它等待输入一段时间然后超时。

如何禁用此功能,并让它无限期地等待进一步的说明?

1 个答案:

答案 0 :(得分:12)

来自:help ttimeout

                                'timeout' 'to' 'notimeout' 'noto'
'timeout' 'to'          boolean (default on)
                        global
                                                *'ttimeout'* *'nottimeout'*
'ttimeout'              boolean (default off)
                        global
                        {not in Vi}
        These two options together determine the behavior when part of a
        mapped key sequence or keyboard code has been received:

        'timeout'    'ttimeout'                action
           off          off                    do not time out
           on           on or off              time out on :mappings and key codes
           off          on                     time out on key codes

        If both options are off, Vim will wait until either the complete
        mapping or key sequence has been received, or it is clear that there
        is no mapping or key sequence for the received characters.  For
        example: if you have mapped "vl" and Vim has received 'v', the next
        character is needed to see if the 'v' is followed by an 'l'.
        When one of the options is on, Vim will wait for about 1 second for
        the next character to arrive.  After that the already received
        characters are interpreted as single characters.  The waiting time can
        be changed with the 'timeoutlen' option.
        On slow terminals or very busy systems timing out may cause
        malfunctioning cursor keys.  If both options are off, Vim waits
        forever after an entered <Esc> if there are key codes that start
        with <Esc>.  You will have to type <Esc> twice.  If you do not have
        problems with key codes, but would like to have :mapped key
        sequences not timing out in 1 second, set the 'ttimeout' option and
        reset the 'timeout' option.

        NOTE: 'ttimeout' is reset when 'compatible' is set.

来自评论:

  

基本上,ESC是箭头和其他控制序列的“领导者”,因此您可能必须按ESC两次而不是一次。 - @Anton Kovalenko

     

正在运行set notimeoutset ttimeout解决了我的问题。 - @nightcracker