Function: viper-exec-form-in-vi

viper-exec-form-in-vi is a byte-compiled function defined in viper-cmd.el.gz.

Signature

(viper-exec-form-in-vi FORM)

Documentation

Execute FORM in Vi state, regardless of the current Vi state.

Source Code

;; Defined in /usr/src/emacs/lisp/emulation/viper-cmd.el.gz
(defun viper-exec-form-in-vi  (form)
  "Execute FORM in Vi state, regardless of the current Vi state."
  (let ((buff (current-buffer))
	result)
    (viper-set-mode-vars-for 'vi-state)

    (condition-case nil
	(let (viper-vi-kbd-minor-mode) ; execute without kbd macros
	  (setq result (eval form t)))
      (error
       (signal 'quit nil)))

    (if (not (equal buff (current-buffer))) ; cmd switched buffer
	(with-current-buffer buff
	  (viper-set-mode-vars-for viper-current-state)))
    (viper-set-mode-vars-for viper-current-state)
    result))