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)
      )))