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 #26 received at 9146 <at> debbugs.gnu.org (full text, mbox):

From: Chong Yidong <cyd <at> gnu.org>
To: Stefano Zacchiroli <zack <at> upsilon.cc>
Cc: Michael Kifer <kifer <at> cs.stonybrook.edu>,
	Stefan Monnier <monnier <at> iro.umontreal.ca>, 9146 <at> debbugs.gnu.org
Subject: Re: bug#9146: M-x broken in console mode with viper (always gives:
	"viper bell"))
Date: Mon, 27 Feb 2012 18:12:43 +0800
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.