The usual behavior in vim is for C-o
in insert-mode to allow the user to use one normal-mode command and then return to insert-mode.
Following the suggestions in this comment, I've set
(vimpulse-imap "\C-o" 'viper-escape-to-vi)
But when I press C-o
in insert-mode, the characters "^O" are inserted in the buffer and I am unable to switch to normal-mode for one command as I expect. I understand viper-escape-to-vi
is bound to C-z
by default but I am also unable to switch to normal-mode using this key combination either ("^Z" is printed in the buffer instead). What am I doing wrong?
Also, second question: I would like for C-z
to not be bound by viper-mode (or vimpulse) as I use it for elscreen. How can I tell it to leave C-z
alone?
Edit: Found this bit of code in vimpulse-misc-keybindings.el:
;; temporarily escape to vi state
(define-key viper-insert-basic-map "\C-o" 'viper-escape-to-vi)
So should be defined already? Not sure why it doesn't work.
Ad 1) It works for me, maybe something went wrong with your config?
But the output is strange: The only way to get it is a quoted-insert (or similar).
viper-escape-to-vi
in insert state is bound toviper-toggle-key
(but well that defaults to C-z), so see below. Again your output is strange.Ad 2) You have to set
viper-toggle-key
to a sexp before viper is loaded, alternatively customize it.For the former (using the Pause key for it)
You should try evil, being the successor to vimpulse. It's coming along well and gets rid of viper.
Setting the toggle key there (to pause again) is a
(evil-set-toggle-key "<pause>")
away, it's a kbd sequence not a sexp. C-o works fine, too.