Function: viper-overwrite
viper-overwrite is an interactive and byte-compiled function defined
in viper-cmd.el.gz.
Signature
(viper-overwrite ARG)
Documentation
Begin overwrite mode.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/emulation/viper-cmd.el.gz
;; This is the function bound to 'R'---unlimited replace.
;; Similar to Emacs's own overwrite-mode.
(defun viper-overwrite (arg)
"Begin overwrite mode."
(interactive "P")
(let ((val (viper-p-val arg))
;;(com (viper-getcom arg))
(len))
(viper-set-destructive-command (list 'viper-overwrite val ?r nil nil nil))
(if (eq viper-intermediate-command 'viper-repeat)
(progn
;; Viper saves inserted text in viper-last-insertion
(setq len (length viper-last-insertion))
(delete-char (min len (- (point-max) (point) 1)))
(viper-loop val (viper-yank-last-insertion)))
(setq last-command 'viper-overwrite)
(viper-set-complex-command-for-undo)
(viper-set-replace-overlay (point) (viper-line-pos 'end))
(viper-change-state-to-replace)
)))