On Sun, Dec 03, 2006 at 10:32:19AM -0800, Yegappan Lakshmanan wrote: > Hi. > > On 12/3/06, Bob Rossi <[EMAIL PROTECTED]> 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