Loading ...
Sorry, an error occurred while loading the content.

timeout, ttimeout, timeoutlen, ttimeoutlen

Expand Messages
  • Bob Rossi
    Hi, I m using vim, and I have the default timeout, ttimeout, timeoutlen, ttimeoutlen options set. That is, timeout is on, ttimeout is off. The manual says:
    Message 1 of 7 , Dec 2, 2006
    • 0 Attachment
      Hi,

      I'm using vim, and I have the default timeout, ttimeout, timeoutlen,
      ttimeoutlen options set. That is, timeout is on, ttimeout is off.
      The manual says:
      'timeout' 'ttimeout' action
      on on or off time out on :mappings and key codes
      So, this to me means that both mappings and key codes will be timed out.

      My timeoutlen is 1000 and my ttimeoutlen is -1. The manual says:
      ttimeoutlen mapping delay key code delay
      < 0 'timeoutlen' 'timeoutlen'
      >= 0 'timeoutlen' 'ttimeoutlen'
      This tells me that both the mapping delay and the keycode delay will use
      1000 milliseconds as a timeout. This is 1 second. However, when I'm in
      insert mode, and hit the ESC key, vim immediately gets out of insert
      mode.

      My question is, how does vim know how to move out of insert mode
      immediately, since it should be waiting 1 second to determine if the
      ESC it received was actually an ESC or a key sequence (Home, F1, ...)?

      Thanks,
      Bob Rossi
    • A.J.Mechelynck
      ... In gvim, and with some terminals in Console Vim, special key codes don t start with Esc ; in that case there is no ambiguity. Other than that, I don t
      Message 2 of 7 , Dec 3, 2006
      • 0 Attachment
        Bob Rossi wrote:
        > Hi,
        >
        > I'm using vim, and I have the default timeout, ttimeout, timeoutlen,
        > ttimeoutlen options set. That is, timeout is on, ttimeout is off.
        > The manual says:
        > 'timeout' 'ttimeout' action
        > on on or off time out on :mappings and key codes
        > So, this to me means that both mappings and key codes will be timed out.
        >
        > My timeoutlen is 1000 and my ttimeoutlen is -1. The manual says:
        > ttimeoutlen mapping delay key code delay
        > < 0 'timeoutlen' 'timeoutlen'
        > >= 0 'timeoutlen' 'ttimeoutlen'
        > This tells me that both the mapping delay and the keycode delay will use
        > 1000 milliseconds as a timeout. This is 1 second. However, when I'm in
        > insert mode, and hit the ESC key, vim immediately gets out of insert
        > mode.
        >
        > My question is, how does vim know how to move out of insert mode
        > immediately, since it should be waiting 1 second to determine if the
        > ESC it received was actually an ESC or a key sequence (Home, F1, ...)?
        >
        > Thanks,
        > Bob Rossi
        >

        In gvim, and with some terminals in Console Vim, special key codes don't start
        with Esc ; in that case there is no ambiguity. Other than that, I don't know,
        but... "if 't ain' broke, don' fix it."


        Best regards,
        Tony.
      • Bob Rossi
        ... My terminal definatly starts special key codes with ESC, and there is a lot of them. Here is a small sample, $ infocmp xterm # Reconstructed via
        Message 3 of 7 , Dec 3, 2006
        • 0 Attachment
          On Sun, Dec 03, 2006 at 12:06:03PM +0100, A.J.Mechelynck wrote:
          > Bob Rossi wrote:
          > >Hi,
          > >
          > >I'm using vim, and I have the default timeout, ttimeout, timeoutlen,
          > >ttimeoutlen options set. That is, timeout is on, ttimeout is off.
          > >The manual says:
          > > 'timeout' 'ttimeout' action
          > > on on or off time out on :mappings and key codes
          > >So, this to me means that both mappings and key codes will be timed out.
          > >
          > >My timeoutlen is 1000 and my ttimeoutlen is -1. The manual says:
          > > ttimeoutlen mapping delay key code delay
          > > < 0 'timeoutlen' 'timeoutlen'
          > > >= 0 'timeoutlen' 'ttimeoutlen'
          > >This tells me that both the mapping delay and the keycode delay will use
          > >1000 milliseconds as a timeout. This is 1 second. However, when I'm in
          > >insert mode, and hit the ESC key, vim immediately gets out of insert
          > >mode.
          > >
          > >My question is, how does vim know how to move out of insert mode
          > >immediately, since it should be waiting 1 second to determine if the
          > >ESC it received was actually an ESC or a key sequence (Home, F1, ...)?
          > >
          > >Thanks,
          > >Bob Rossi
          > >
          >
          > In gvim, and with some terminals in Console Vim, special key codes don't
          > start with Esc ; in that case there is no ambiguity. Other than that, I
          > don't know, but... "if 't ain' broke, don' fix it."

          My terminal definatly starts special key codes with ESC, and there is a
          lot of them. Here is a small sample,

          $ infocmp xterm
          # Reconstructed via infocmp from file: /lib/terminfo/x/xterm
          xterm|X11 terminal emulator,
          kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
          khome=\EOH, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,

          I'd really like to know the answer to this question. I have a feeling
          vim is not honoring the timeoutlen value that it has documented or that
          I don't know how to read the documentation.

          Thanks,
          Bob Rossi
        • Yegappan Lakshmanan
          Hi. ... - Yegappan
          Message 4 of 7 , Dec 3, 2006
          • 0 Attachment
            Hi.

            On 12/3/06, Bob Rossi <bob_rossi@...> wrote:
            > On Sun, Dec 03, 2006 at 12:06:03PM +0100, A.J.Mechelynck wrote:
            > > Bob Rossi wrote:
            > > >Hi,
            > > >
            > > >I'm using vim, and I have the default timeout, ttimeout, timeoutlen,
            > > >ttimeoutlen options set. That is, timeout is on, ttimeout is off.
            > > >The manual says:
            > > > 'timeout' 'ttimeout' action
            > > > on on or off time out on :mappings and key codes
            > > >So, this to me means that both mappings and key codes will be timed out.
            > > >
            > > >My timeoutlen is 1000 and my ttimeoutlen is -1. The manual says:
            > > > ttimeoutlen mapping delay key code delay
            > > > < 0 'timeoutlen' 'timeoutlen'
            > > > >= 0 'timeoutlen' 'ttimeoutlen'
            > > >This tells me that both the mapping delay and the keycode delay will use
            > > >1000 milliseconds as a timeout. This is 1 second. However, when I'm in
            > > >insert mode, and hit the ESC key, vim immediately gets out of insert
            > > >mode.
            > > >
            > > >My question is, how does vim know how to move out of insert mode
            > > >immediately, since it should be waiting 1 second to determine if the
            > > >ESC it received was actually an ESC or a key sequence (Home, F1, ...)?
            > > >
            > > >Thanks,
            > > >Bob Rossi
            > > >
            > >
            > > In gvim, and with some terminals in Console Vim, special key codes don't
            > > start with Esc ; in that case there is no ambiguity. Other than that, I
            > > don't know, but... "if 't ain' broke, don' fix it."
            >
            > My terminal definatly starts special key codes with ESC, and there is a
            > lot of them. Here is a small sample,
            >
            > $ infocmp xterm
            > # Reconstructed via infocmp from file: /lib/terminfo/x/xterm
            > xterm|X11 terminal emulator,
            > kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
            > khome=\EOH, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
            >
            > I'd really like to know the answer to this question. I have a feeling
            > vim is not honoring the timeoutlen value that it has documented or that
            > I don't know how to read the documentation.
            >

            I think, the following help topics may be relevant here:

            :help xterm-8bit
            :help 'esckeys'
            :help gui-extras

            - Yegappan
          • Bob Rossi
            ... Thank you. I was unaware of all of these. ... How can I determine if this is it? I m using an xterm, with TERM=xterm. Below is the output of infocmp
            Message 5 of 7 , Dec 3, 2006
            • 0 Attachment
              On Sun, Dec 03, 2006 at 10:32:19AM -0800, Yegappan Lakshmanan wrote:
              > Hi.
              >
              > On 12/3/06, Bob Rossi <bob_rossi@...> wrote:
              > >On Sun, Dec 03, 2006 at 12:06:03PM +0100, A.J.Mechelynck wrote:
              > >> Bob Rossi wrote:
              > >> >Hi,
              > >> >
              > >> >I'm using vim, and I have the default timeout, ttimeout, timeoutlen,
              > >> >ttimeoutlen options set. That is, timeout is on, ttimeout is off.
              > >> >The manual says:
              > >> > 'timeout' 'ttimeout' action
              > >> > on on or off time out on :mappings and key codes
              > >> >So, this to me means that both mappings and key codes will be timed out.
              > >> >
              > >> >My timeoutlen is 1000 and my ttimeoutlen is -1. The manual says:
              > >> > ttimeoutlen mapping delay key code delay
              > >> > < 0 'timeoutlen' 'timeoutlen'
              > >> > >= 0 'timeoutlen' 'ttimeoutlen'
              > >> >This tells me that both the mapping delay and the keycode delay will use
              > >> >1000 milliseconds as a timeout. This is 1 second. However, when I'm in
              > >> >insert mode, and hit the ESC key, vim immediately gets out of insert
              > >> >mode.
              > >> >
              > >> >My question is, how does vim know how to move out of insert mode
              > >> >immediately, since it should be waiting 1 second to determine if the
              > >> >ESC it received was actually an ESC or a key sequence (Home, F1, ...)?
              > >> >
              > >> >Thanks,
              > >> >Bob Rossi
              > >> >
              > >>
              > >> In gvim, and with some terminals in Console Vim, special key codes don't
              > >> start with Esc ; in that case there is no ambiguity. Other than that, I
              > >> don't know, but... "if 't ain' broke, don' fix it."
              > >
              > >My terminal definatly starts special key codes with ESC, and there is a
              > >lot of them. Here is a small sample,
              > >
              > >$ infocmp xterm
              > ># Reconstructed via infocmp from file: /lib/terminfo/x/xterm
              > >xterm|X11 terminal emulator,
              > > kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
              > > khome=\EOH, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
              > >
              > >I'd really like to know the answer to this question. I have a feeling
              > >vim is not honoring the timeoutlen value that it has documented or that
              > >I don't know how to read the documentation.
              > >
              >
              > I think, the following help topics may be relevant here:

              Thank you. I was unaware of all of these.

              > :help xterm-8bit

              How can I determine if this is it? I'm using an xterm, with TERM=xterm.
              Below is the output of 'infocmp xterm'.

              # Reconstructed via infocmp from file: /lib/terminfo/x/xterm
              xterm|X11 terminal emulator,
              am, bce, km, mc5i, mir, msgr, npc, xenl,
              colors#8, cols#80, it#8, lines#24, pairs#64,
              acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
              bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
              clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
              csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
              cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
              cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
              cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
              dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
              flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
              ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
              ind=^J, indn=\E[%p1%dS, invis=\E[8m,
              is2=\E[!p\E[?3;4l\E[4l\E>, kDC=\E[3;2~, kEND=\E[1;2F,
              kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~,
              kPRV=\E[5;2~, kRIT=\E[1;2C, kb2=\EOE, kbs=\177, kcbt=\E[Z,
              kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
              kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
              kf11=\E[23~, kf12=\E[24~, kf13=\EO2P, kf14=\EO2Q,
              kf15=\EO2R, kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~,
              kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
              kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P,
              kf26=\EO5Q, kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~,
              kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
              kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
              kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
              kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
              kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
              kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P,
              kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S,
              kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
              kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
              kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
              kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
              khome=\EOH, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
              mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El, memu=\Em,
              op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rin=\E[%p1%dT,
              rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
              rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
              rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, setab=\E[4%p1%dm,
              setaf=\E[3%p1%dm,
              setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
              setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
              sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
              sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
              smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
              tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
              vpa=\E[%i%p1%dd,

              > :help 'esckeys'

              This can not be the problem, since I have not set the value, and the
              default is on. This means that the function keys that start with <Esc>
              will be recognized. Thus, that should cause m ESC to take 1 second to
              register with vim.

              > :help gui-extras

              This also is not the problem. I ran the sample code at the very end of
              my .vimrc
              if has("gui_running")
              echo "yes, we have a GUI"
              else
              echo "Boring old console"
              endif
              and got back "Boring old console".

              Thanks very much for trying to help me track down this issue,
              Bob Rossi
            • Yegappan Lakshmanan
              Hi, ... The following comment is present in the code in the getchar.c file. It looks like in insert mode the escape character is treated specially even though
              Message 6 of 7 , Dec 3, 2006
              • 0 Attachment
                Hi,

                On 12/3/06, Bob Rossi <bob_rossi@...> wrote:
                > > >> >Hi,
                > > >> >
                > > >> >I'm using vim, and I have the default timeout, ttimeout, timeoutlen,
                > > >> >ttimeoutlen options set. That is, timeout is on, ttimeout is off.
                > > >> >The manual says:
                > > >> > 'timeout' 'ttimeout' action
                > > >> > on on or off time out on :mappings and key codes
                > > >> >So, this to me means that both mappings and key codes will be timed out.
                > > >> >
                > > >> >My timeoutlen is 1000 and my ttimeoutlen is -1. The manual says:
                > > >> > ttimeoutlen mapping delay key code delay
                > > >> > < 0 'timeoutlen' 'timeoutlen'
                > > >> > >= 0 'timeoutlen' 'ttimeoutlen'
                > > >> >This tells me that both the mapping delay and the keycode delay will use
                > > >> >1000 milliseconds as a timeout. This is 1 second. However, when I'm in
                > > >> >insert mode, and hit the ESC key, vim immediately gets out of insert
                > > >> >mode.
                > > >> >
                > > >> >My question is, how does vim know how to move out of insert mode
                > > >> >immediately, since it should be waiting 1 second to determine if the
                > > >> >ESC it received was actually an ESC or a key sequence (Home, F1, ...)?
                > > >> >
                > > >> >Thanks,
                > > >> >Bob Rossi
                > > >> >
                > > >>
                > > >> In gvim, and with some terminals in Console Vim, special key codes don't
                > > >> start with Esc ; in that case there is no ambiguity. Other than that, I
                > > >> don't know, but... "if 't ain' broke, don' fix it."
                > > >
                > > >My terminal definatly starts special key codes with ESC, and there is a
                > > >lot of them. Here is a small sample,
                > > >
                > > >$ infocmp xterm
                > > ># Reconstructed via infocmp from file: /lib/terminfo/x/xterm
                > > >xterm|X11 terminal emulator,
                > > > kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
                > > > khome=\EOH, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
                > > >
                > > >I'd really like to know the answer to this question. I have a feeling
                > > >vim is not honoring the timeoutlen value that it has documented or that
                > > >I don't know how to read the documentation.
                > > >
                > >
                > > I think, the following help topics may be relevant here:
                >
                > Thank you. I was unaware of all of these.
                >
                > > :help xterm-8bit
                >

                The following comment is present in the code in the getchar.c file. It looks
                like in insert mode the escape character is treated specially even though
                the 'timeout' option is set.

                /*
                * get a character: 3. from the user - handle <Esc> in Insert mode
                */
                /*
                * special case: if we get an <ESC> in insert mode and there
                * are no more characters at once, we pretend to go out of
                * insert mode. This prevents the one second delay after
                * typing an <ESC>. If we get something after all, we may
                * have to redisplay the mode. That the cursor is in the wrong
                * place does not matter.
                */

                To confirm this, I executed the following commands:

                :set showcmd
                :set showmode
                :set timeoutlen=10000
                :inoremap <Esc>l <C-O>:echo 'Escape ell'<CR>

                In insert mode, I pressed <Esc> and waited for a few seconds. It
                looked like Vim came out of insert mode. But when I pressed 'l'
                after a few seconds (within 10 seconds), then the above map
                is executed.

                - Yegappan
              • Bob Rossi
                ... Hi Yegappan, Yes, this is correct. This was confirmed by tpope in #vim at freenode.net. I was able to hit Esc, watch vim get out of insert mode, and then
                Message 7 of 7 , Dec 3, 2006
                • 0 Attachment
                  On Sun, Dec 03, 2006 at 07:01:11PM -0800, Yegappan Lakshmanan wrote:
                  > Hi,
                  >
                  > On 12/3/06, Bob Rossi <bob_rossi@...> wrote:
                  > >> >> >Hi,
                  > >> >> >
                  > >> >> >I'm using vim, and I have the default timeout, ttimeout, timeoutlen,
                  > >> >> >ttimeoutlen options set. That is, timeout is on, ttimeout is off.
                  > >> >> >The manual says:
                  > >> >> > 'timeout' 'ttimeout' action
                  > >> >> > on on or off time out on :mappings and key codes
                  > >> >> >So, this to me means that both mappings and key codes will be timed
                  > >out.
                  > >> >> >
                  > >> >> >My timeoutlen is 1000 and my ttimeoutlen is -1. The manual says:
                  > >> >> > ttimeoutlen mapping delay key code delay
                  > >> >> > < 0 'timeoutlen' 'timeoutlen'
                  > >> >> > >= 0 'timeoutlen' 'ttimeoutlen'
                  > >> >> >This tells me that both the mapping delay and the keycode delay will
                  > >use
                  > >> >> >1000 milliseconds as a timeout. This is 1 second. However, when I'm
                  > >in
                  > >> >> >insert mode, and hit the ESC key, vim immediately gets out of insert
                  > >> >> >mode.
                  > >> >> >
                  > >> >> >My question is, how does vim know how to move out of insert mode
                  > >> >> >immediately, since it should be waiting 1 second to determine if the
                  > >> >> >ESC it received was actually an ESC or a key sequence (Home, F1,
                  > >...)?
                  > >> >> >
                  > >> >> >Thanks,
                  > >> >> >Bob Rossi
                  > >> >> >
                  > >> >>
                  > >> >> In gvim, and with some terminals in Console Vim, special key codes
                  > >don't
                  > >> >> start with Esc ; in that case there is no ambiguity. Other than that,
                  > >I
                  > >> >> don't know, but... "if 't ain' broke, don' fix it."
                  > >> >
                  > >> >My terminal definatly starts special key codes with ESC, and there is a
                  > >> >lot of them. Here is a small sample,
                  > >> >
                  > >> >$ infocmp xterm
                  > >> ># Reconstructed via infocmp from file: /lib/terminfo/x/xterm
                  > >> >xterm|X11 terminal emulator,
                  > >> > kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
                  > >> > khome=\EOH, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
                  > >> >
                  > >> >I'd really like to know the answer to this question. I have a feeling
                  > >> >vim is not honoring the timeoutlen value that it has documented or that
                  > >> >I don't know how to read the documentation.
                  > >> >
                  > >>
                  > >> I think, the following help topics may be relevant here:
                  > >
                  > >Thank you. I was unaware of all of these.
                  > >
                  > >> :help xterm-8bit
                  > >
                  >
                  > The following comment is present in the code in the getchar.c file. It looks
                  > like in insert mode the escape character is treated specially even though
                  > the 'timeout' option is set.
                  >
                  > /*
                  > * get a character: 3. from the user - handle <Esc> in Insert mode
                  > */
                  > /*
                  > * special case: if we get an <ESC> in insert mode and there
                  > * are no more characters at once, we pretend to go out of
                  > * insert mode. This prevents the one second delay after
                  > * typing an <ESC>. If we get something after all, we may
                  > * have to redisplay the mode. That the cursor is in the wrong
                  > * place does not matter.
                  > */
                  >
                  > To confirm this, I executed the following commands:
                  >
                  > :set showcmd
                  > :set showmode
                  > :set timeoutlen=10000
                  > :inoremap <Esc>l <C-O>:echo 'Escape ell'<CR>
                  >
                  > In insert mode, I pressed <Esc> and waited for a few seconds. It
                  > looked like Vim came out of insert mode. But when I pressed 'l'
                  > after a few seconds (within 10 seconds), then the above map
                  > is executed.

                  Hi Yegappan,

                  Yes, this is correct. This was confirmed by tpope in #vim at
                  freenode.net. I was able to hit Esc, watch vim get out of insert
                  mode, and then type OH, which completed the Home keycode. Vim
                  went back into insert mode, and did the Home action. So, it seems as if
                  vim simply appears to have left insert mode, but actually doesn't.

                  I think it would be great if this was documented with the ttimeout
                  or ttimeoutlen option.

                  Thanks for helping resolve this issue.

                  Thanks,
                  Bob Rossi
                Your message has been successfully submitted and would be delivered to recipients shortly.