[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#9146: M-x broken in console mode with viper (always gives: "viper be
From: |
Michael Kifer |
Subject: |
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@gnu.org> wrote:
> Stefan Monnier <monnier@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
>