[implementations-list] issue with viper-escape-to-emacs
Fabian Braennstroem
f.braennstroem at gmx.de
Thu Apr 1 15:37:18 CEST 2010
On 04/01/2010 03:25 PM, Vegard Øye wrote:
>> Date: Thu, 1 Apr 2010 15:04:07 +0200
>> From: f.braennstroem at gmx.de
>>
>>>> (define-key viper-vi-global-user-map (kbd "\\\\") 'viper-escape-to-emacs)
>>>>
>>>> Unfortunately, this does not work anymore, as using M(Esc) for the
>>>> next command cancels this escape and inserts the second of the
>>>> backslash into the buffer...
>>> I'm sorry, but I can't reproduce this. What M-x functions do you
>>> need Emacs state for? And why do you rebind `viper-escape-to-emacs'
>>> from \ to \\? Please provide more details. :)
>> I need it for functions like to include entries in the bibtex-file
>> and e.g. replacing strings in a file. I rebind it, as I have some
>> other keybindings to \t, \e , \] and \,
>
> Right. What are the precise keystrokes (M-x view-lossage)? What does
> your .emacs file look like (position of the line above)? What version
> of Emacs are you using? I can't help you before I observe the same
> behavior in my own editor.
Currently, I have this, which should affect vim/viper/vimpluse... in my
.emacs:
(require 'redo)
(require 'rect-mark)
(setq viper-mode t) ; enable Viper at load time
(setq viper-ex-style-editing nil) ; can backspace past start of insert /
line
(require 'viper) ; load Viper
;(setq vimpulse-experimental nil) ; don't load bleeding edge code (see
6. installation instruction)
(require 'vimpulse) ; load Vimpulse
(setq woman-use-own-frame nil) ; don't create new frame for manpages
(setq woman-use-topic-at-point t) ; don't prompt upon K key (manpage
display)
(require 'rect)
(defun my-sequence-rectangle (first incr format)
"Insert increasing numbers at beginning of each line."
(interactive
(list (if current-prefix-arg
(prefix-numeric-value current-prefix-arg)
(string-to-number
(read-string "Start value: (0) " nil nil "0")))
(string-to-number
(read-string "Increment: (1) " nil nil "1"))
(read-string "Format: (%d) ")))
(when (= (length format) 0)
(setq format "%d"))
(apply-on-rectangle
(lambda (start-col end-col count-var)
(move-to-column start-col)
(insert (format format (eval count-var)))
(set count-var (+ (eval count-var) incr)))
(region-beginning) (region-end) 'first)
(vimpulse-visual-mode -1))
;(load "vimpulseext")
;(defmacro vimpulse-region-command (function)
; `(lambda ()
; (interactive)
; (,function (vimpulse-get-vs-start) (vimpulse-get-vs-end))
; (vimpulse-visual-mode nil)))
;(define-key viper-vi-global-user-map "\\\]" (vimpulse-region-command
comment-region))
;//(define-key viper-vi-global-user-map "\\," (vimpulse-region-command
uncomment-region))
(vimpulse-vmap (kbd "M-%") 'query-replace)
;; (define-key viper-vi-global-user-map (kbd "\\\]") 'comment-region)
;; (define-key viper-vi-global-user-map (kbd "\\,") 'uncomment-region)
(vimpulse-vmap (kbd "\\\]") 'comment-region)
(vimpulse-vmap (kbd "\\,") 'uncomment-region)
(vimpulse-vmap (kbd "M-n") 'my-sequence-rectangle)
(vimpulse-vmap (kbd "G") 'end-of-buffer)
(vimpulse-map (kbd "\\\\") 'viper-escape-to-emacs)
(define-key viper-vi-global-user-map (kbd "\\\\") 'viper-escape-to-emacs)
(define-key ctl-x-map "r\C-@" 'rm-set-mark)
(define-key ctl-x-map [?r ?\C-\ ] 'rm-set-mark)
(define-key ctl-x-map "r\C-x" 'rm-exchange-point-and-mark)
(define-key ctl-x-map "r\C-w" 'rm-kill-region)
(define-key ctl-x-map "r\M-w" 'rm-kill-ring-save)
(define-key global-map [S-down-mouse-1] 'rm-mouse-drag-region)
(define-key viper-vi-global-user-map (kbd "qq") 'fill-paragraph)
(define-key viper-vi-global-user-map (kbd "qr") 'fill-region)
(define-key viper-vi-global-user-map (kbd "C-h") 'tabbar-backward-tab)
(define-key viper-vi-global-user-map (kbd "C-l") 'tabbar-forward-tab)
;(define-key viper-vi-global-user-map (kbd "\C-t\C-t") 'align-dwim)
(define-key viper-vi-global-user-map (kbd "\\x") 'xterm)
;(define-key viper-vi-global-user-map (kbd "\\x") 'xterm_python)
(define-key viper-vi-global-user-map (kbd "\\C") 'log-edit-done)
(define-key viper-vi-global-user-map (kbd "\\c") 'cvs-update)
;(global-set-key [f12] '(lambda ()
(define-key viper-vi-global-user-map (kbd "\\c") '(lambda ()
(interactive)
(cvs-examine
(file-name-directory
(buffer-file-name)) '("-d" "-P"))))
(define-key viper-vi-global-user-map (kbd "\\T") 'align)
(define-key viper-vi-global-user-map (kbd "\\i") 'ispell-word)
(define-key viper-vi-global-user-map (kbd "\\I") 'ispell-change-dictionary)
(define-key viper-vi-global-user-map (kbd "\\e") 'flyspell-mode)
(define-key viper-vi-global-user-map (kbd "\\l")
'org-export-region-as-latex)
(define-key viper-vi-global-user-map (kbd "\\L") 'org-export-as-latex)
(define-key viper-vi-global-user-map (kbd "\\h") 'org-export-region-as-html)
(define-key viper-vi-global-user-map (kbd "\\H") 'org-export-as-html)
(define-key viper-vi-global-user-map (kbd "\\f") 'make-frame)
(define-key viper-vi-global-user-map (kbd "\\F") 'find-file-at-point)
(define-key viper-vi-global-user-map (kbd "\\t") 'my-toggle-window-state)
(define-key viper-vi-global-user-map (kbd "\\r") 'org-export-region-as-html)
(define-key viper-vi-global-user-map (kbd "\\d") 'dired-jump)
(define-key viper-vi-global-user-map (kbd "\\D") 'dired-jump-other-window)
(define-key viper-vi-global-user-map (kbd "\\b") 'bibtex_pfm_move)
(define-key viper-vi-global-user-map (kbd "\\?1") 'my-toggle-window-state)
(define-key viper-vi-global-user-map (kbd "C-l") 'preview-at-point)
(global-set-key (kbd "C-c p") 'preview-at-point)
(define-key viper-vi-global-user-map (kbd "\\S") 'allout-show-all)
(define-key viper-vi-global-user-map (kbd "\\s") 'allout-show-current-entry)
(define-key viper-vi-global-user-map (kbd "C-p")
'outline-previous-visible-heading)
(define-key viper-vi-global-user-map (kbd "C-n")
'outline-next-visible-heading)
(define-key viper-vi-global-user-map (kbd "C-e") 'org-export)
I am using
GNU Emacs 23.1.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.16.1) on
kubuntu/karmic.
The problem arises with any function, I have to call with M-x (btw I
have to use 'Escape' for M as I have a lot of Alt-keybindings for my
window manager).
>
> By the way, Emacs' M-% (`query-replace') and M-x replace-regexp both
> work fine in vi state for me. Am I missing something?
As mentioned above... I have to use Esc.
Fabian
More information about the implementations-list
mailing list