Subject: bug#1072: Viper version is 3.14 of April 06, 2008; can't exit viper insert mode with ESC using emacsclient -t

From: Stefano Zacchiroli <[email-masked]>
Date: Sun, 16 Nov 2008 17:18:47 +0100

On Sun, Nov 16, 2008 at 12:02:52AM -0500, Michael Kifer wrote:
> I committed the changes to cvs.
> Pls see if it solves the problem.

First of all many thanks for the quick feedback!

I took the following 5 files from Emacs CVS:

  viper-cmd.el
  viper.el
  viper-init.el
  viper-keym.el
  viper-util.el

AFAICT they are the only files you touched to implement the fix, is
that correct?

Using those files part of the problem is solved, but not its
entirety. In particular, exiting from insert mode in console clients
works out of the box without needing the hack:

  (setq viper-ESC-key (kbd "ESC"))	;; workaround for #1072

before loading Viper. And that's already great!

Still, typing M-x (or other M-something) does not work appropriately,
i.e. it stills makes Viper exit insert mode. I double checked and in
a freshly run "emacs -nw" it does work as expected.

Nevertheless, the timeout is visibly set properly, I assume via the
new introduced function. Indeed typing ESC in a X11 frame immediately
exits insert mode, while doing that in console has some delay, I guess
the 200 ms which the function correctly return. Evaluating
(viper-ESC-keyseq-timeout) in the two cases confirms that it is the
case.

My best guess at an explanation for the remaining problem is that
there is some additional setting which deserves the same treatment,
but I've no idea about which one ...

Let me know how can I debug this any further.

TIA,
Cheers.

-- 
Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Dietro un grande uomo c'è ..|  .  |. Et ne m'en veux pas si je te tutoie
sempre uno zaino ...........| ..: |.... Je dis tu à tous ceux que j'aime