GNU bug report logs - #9146
24.0.50; M-x broken in console mode with viper (always gives: "viper bell")

Previous Next

Package: emacs;

Reported by: Stefano Zacchiroli <zack <at> upsilon.cc>

Date: Fri, 22 Jul 2011 10:46:01 UTC

Severity: important

Found in version 24.0.50

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #40 received at 9146 <at> debbugs.gnu.org (full text, mbox):

From: Michael Kifer <kifer <at> cs.stonybrook.edu>
To: Chong Yidong <cyd <at> gnu.org>
Cc: 9146 <at> debbugs.gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>,
	Stefano Zacchiroli <zack <at> upsilon.cc>
Subject: Re: bug#9146: M-x broken in console mode with viper (always gives:
	"viper bell"))
Date: Mon, 27 Feb 2012 20:32:03 -0500
Thanks Chong. I meant to get to this all these months, but my stack of things
to do kept getting deeper and deeper...
michael


On Mon, 27 Feb 2012 18:12:43 +0800
Chong Yidong <cyd <at> gnu.org> wrote:

> Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
> 
> > IOW viper-intercept-ESC-key needs to be changed to call key-binding in
> > a context where Viper's minor-mode map(s) have been temporarily disabled
> > so the ESC binding to viper-intercept-ESC-key doesn't hide the thing
> > we're looking for.
> 
> Since no one else has stepped up to the plate, I took a crack at this.
> 
> Stefano, could you test if the following patch does the right thing?
> 
> 
> *** lisp/emulation/viper-cmd.el	2012-01-19 07:21:25 +0000
> --- lisp/emulation/viper-cmd.el	2012-02-27 10:10:42 +0000
> ***************
> *** 1086,1093 ****
>   (defun viper-intercept-ESC-key ()
>     "Function that implements ESC key in Viper emulation of Vi."
>     (interactive)
> !   (let ((cmd (or (key-binding (viper-envelop-ESC-key))
> ! 		 (lambda () (interactive) (error "Viper bell")))))
>   
>       ;; call the actual function to execute ESC (if no other symbols
> followed) ;; or the key bound to the ESC sequence (if the sequence was issued
> --- 1086,1098 ----
>   (defun viper-intercept-ESC-key ()
>     "Function that implements ESC key in Viper emulation of Vi."
>     (interactive)
> !   (let* ((event (viper-envelop-ESC-key))
> ! 	 (cmd (cond ((equal event viper-ESC-key)
> ! 		     'viper-intercept-ESC-key)
> ! 		    ((let ((emulation-mode-map-alists nil))
> ! 		       (key-binding event)))
> ! 		    (t
> ! 		     (error "Viper bell")))))
>   
>       ;; call the actual function to execute ESC (if no other symbols
> followed) ;; or the key bound to the ESC sequence (if the sequence was issued
> 




This bug report was last modified 12 years and 336 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.