Function: vip-change-mode
vip-change-mode is a byte-compiled function defined in vip.el.gz.
Signature
(vip-change-mode NEW-MODE)
Documentation
Change mode to NEW-MODE---either emacs-mode, vi-mode, or insert-mode.
Source Code
;; Defined in /usr/src/emacs/lisp/obsolete/vip.el.gz
;; changing mode
(defun vip-change-mode (new-mode)
"Change mode to NEW-MODE---either emacs-mode, vi-mode, or insert-mode."
(or (eq new-mode vip-current-mode)
(progn
(cond ((eq new-mode 'vi-mode)
(if (eq vip-current-mode 'insert-mode)
(progn
(vip-copy-region-as-kill (point) vip-insert-point)
(vip-repeat-insert-command))
(setq vip-emacs-local-map (current-local-map)
vip-emacs-mode-line-buffer-identification
mode-line-buffer-identification
vip-insert-local-map (vip-copy-keymap
(current-local-map))))
(vip-change-mode-line "Vi: ")
(use-local-map vip-mode-map))
((eq new-mode 'insert-mode)
(move-marker vip-insert-point (point))
(if (eq vip-current-mode 'emacs-mode)
(setq vip-emacs-local-map (current-local-map)
vip-emacs-mode-line-buffer-identification
mode-line-buffer-identification
vip-insert-local-map (vip-copy-keymap
(current-local-map)))
(setq vip-insert-local-map (vip-copy-keymap
vip-emacs-local-map)))
(vip-change-mode-line "Insert")
(use-local-map vip-insert-local-map)
(define-key vip-insert-local-map "\e" #'vip-change-mode-to-vi)
(define-key vip-insert-local-map "\C-z" #'vip-ESC)
(define-key vip-insert-local-map "\C-h"
(if vip-help-in-insert-mode #'help-command
#'delete-backward-char))
(define-key vip-insert-local-map "\C-w"
#'vip-delete-backward-word))
((eq new-mode 'emacs-mode)
(vip-change-mode-line "Emacs:")
(use-local-map vip-emacs-local-map)))
(setq vip-current-mode new-mode)
(force-mode-line-update))))