Function: viper-delete-char

viper-delete-char is an interactive and byte-compiled function defined in viper-cmd.el.gz.

Signature

(viper-delete-char ARG)

Documentation

Delete next character.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/emulation/viper-cmd.el.gz
(defun viper-delete-char (arg)
  "Delete next character."
  (interactive "P")
  (let ((val (viper-p-val arg))
	end-del-pos)
    (viper-set-destructive-command
     (list 'viper-delete-char val nil nil nil nil))
    (if (and viper-ex-style-editing
	     (> val (viper-chars-in-region (point) (viper-line-pos 'end))))
	(setq val (viper-chars-in-region (point) (viper-line-pos 'end))))
    (if (and viper-ex-style-motion (eolp))
	(if (bolp) (user-error viper-ViperBell) (setq val 0))) ; not bol---simply back 1 ch
    (save-excursion
      (viper-forward-char-carefully val)
      (setq end-del-pos (point)))
    (if viper-use-register
	(progn
	  (cond ((viper-valid-register viper-use-register '((Letter)))
		 (viper-append-to-register
		  (downcase viper-use-register) (point) end-del-pos))
		((viper-valid-register viper-use-register)
		 (copy-to-register
		  viper-use-register (point) end-del-pos nil))
		(t (error viper-InvalidRegister viper-use-register)))
	  (setq viper-use-register nil)))

    (delete-char val t)
    (if viper-ex-style-motion
	(if (and (eolp) (not (bolp))) (backward-char 1)))
    ))