"Function that implements ESC key in Viper emulation of Vi."
(interactive)
(let ((cmd (or (key-binding (viper-envelop-ESC-key))
- '(lambda () (interactive) (error "")))))
+ '(lambda () (interactive) (error "Viper bell")))))
;; call the actual function to execute ESC (if no other symbols followed)
;; or the key bound to the ESC sequence (if the sequence was issued
;; it is an error.
(progn
;; new com is (CHAR . OLDCOM)
- (if (viper-memq-char char '(?# ?\")) (error ""))
+ (if (viper-memq-char char '(?# ?\")) (error "Viper bell"))
(setq com (cons char com))
(setq cont nil))
;; If com is nil we set com as char, and read more. Again, if char is
(let ((reg (read-char)))
(if (viper-valid-register reg)
(setq viper-use-register reg)
- (error ""))
+ (error "Viper bell"))
(setq char (read-char))))
(t
(setq com char)
(viper-regsuffix-command-p char)
(viper= char ?!) ; bang command
(viper= char ?g) ; the gg command (like G0)
- (error ""))
+ (error "Viper bell"))
(setq cmd-to-exec-at-end
(viper-exec-form-in-vi
`(key-binding (char-to-string ,char)))))
((equal com '(?= . ?=)) (viper-line (cons value ?=)))
;; gg acts as G0
((equal (car com) ?g) (viper-goto-line 0))
- (t (error "")))))
+ (t (error "Viper bell")))))
(if cmd-to-exec-at-end
(progn
;; the forward motion before the 'viper-execute-com', but, of
;; course, 'dl' doesn't work on an empty line, so we have to
;; catch that condition before 'viper-execute-com'
- (if (and (eolp) (bolp)) (error "") (forward-char val))
+ (if (and (eolp) (bolp)) (error "Viper bell") (forward-char val))
(if com (viper-execute-com 'viper-forward-char val com))
- (if (eolp) (progn (backward-char 1) (error ""))))
+ (if (eolp) (progn (backward-char 1) (error "Viper bell"))))
(forward-char val)
(if com (viper-execute-com 'viper-forward-char val com)))))
(if com (viper-move-marker-locally 'viper-com-point (point)))
(if viper-ex-style-motion
(progn
- (if (bolp) (error "") (backward-char val))
+ (if (bolp) (error "Viper bell") (backward-char val))
(if com (viper-execute-com 'viper-backward-char val com)))
(backward-char val)
(if com (viper-execute-com 'viper-backward-char val com)))))
(if com (viper-execute-com 'viper-goto-col val com))
(save-excursion
(end-of-line)
- (if (> val (current-column)) (error "")))
+ (if (> val (current-column)) (error "Viper bell")))
))
;; If FORWARD then search is forward, otherwise backward. OFFSET is used to
;; adjust point after search.
(defun viper-find-char (arg char forward offset)
- (or (char-or-string-p char) (error ""))
+ (or (char-or-string-p char) (error "Viper bell"))
(let ((arg (if forward arg (- arg)))
(cmd (if (eq viper-intermediate-command 'viper-repeat)
(nth 5 viper-d-com)
(if com (viper-move-marker-locally 'viper-com-point (point)))
(backward-sexp 1)
(if com (viper-execute-com 'viper-paren-match nil com)))
- (t (error ""))))))
+ (t (error "Viper bell"))))))
(defun viper-toggle-parse-sexp-ignore-comments ()
(interactive)
(let ((reg viper-use-register))
(setq viper-use-register nil)
(error viper-EmptyRegister reg))
- (error "")))
+ (error "Viper bell")))
(setq viper-use-register nil)
(if (viper-end-with-a-newline-p text)
(progn
(let ((reg viper-use-register))
(setq viper-use-register nil)
(error viper-EmptyRegister reg))
- (error "")))
+ (error "Viper bell")))
(setq viper-use-register nil)
(if (viper-end-with-a-newline-p text) (beginning-of-line))
(viper-set-destructive-command
(> 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) (error "") (setq val 0))) ; not bol---simply back 1 ch
+ (if (bolp) (error "Viper bell") (setq val 0))) ; not bol---simply back 1 ch
(save-excursion
(viper-forward-char-carefully val)
(setq end-del-pos (point)))
((viper= char ?,) (viper-cycle-through-mark-ring))
((viper= char ?^) (push-mark viper-saved-mark t t))
((viper= char ?D) (mark-defun))
- (t (error ""))
+ (t (error "Viper bell"))
)))
;; Algorithm: If first invocation of this command save mark on ring, goto
(switch-to-buffer buff)
(goto-char viper-com-point)
(viper-change-state-to-vi)
- (error "")))))
+ (error "Viper bell")))))
((and (not skip-white) (viper= char ?`))
(if com (viper-move-marker-locally 'viper-com-point (point)))
(if (and (viper-same-line (point) viper-last-jump)
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
;; Keywords: emulations
-(defconst viper-version "3.14 of June 14, 2007"
+(defconst viper-version "3.14 of August 18, 2007"
"The current version of Viper")
;; This file is part of GNU Emacs.
(remove-hook symbol 'viper-change-state-to-emacs)
(remove-hook symbol 'viper-change-state-to-insert)
(remove-hook symbol 'viper-change-state-to-vi)
+ (remove-hook symbol 'viper-minibuffer-post-command-hook)
+ (remove-hook symbol 'viper-minibuffer-setup-sentinel)
+ (remove-hook symbol 'viper-major-mode-change-sentinel)
+ (remove-hook symbol 'set-viper-state-in-major-mode)
+ (remove-hook symbol 'viper-post-command-sentinel)
)))
;; Remove local value in all existing buffers
global-mode-string
(delq 'viper-mode-string global-mode-string))
+ (setq default-major-mode
+ (viper-standard-value 'default-major-mode viper-saved-non-viper-variables))
+
(if viper-emacs-p
(setq-default
mark-even-if-inactive
(mapatoms 'viper-remove-hooks)
(remove-hook 'comint-mode-hook 'viper-comint-mode-hook)
(remove-hook 'erc-mode-hook 'viper-comint-mode-hook)
- (remove-hook 'minibuffer-setup-hook 'viper-minibuffer-setup-sentinel)
(remove-hook 'change-major-mode-hook 'viper-major-mode-change-sentinel)
- (remove-hook 'post-command-hook 'viper-minibuffer-post-command-hook)
;; unbind Viper mouse bindings
(viper-unbind-mouse-search-key)
(if (null viper-saved-non-viper-variables)
(setq viper-saved-non-viper-variables
(list
+ (cons 'default-major-mode (list default-major-mode))
(cons 'next-line-add-newlines (list next-line-add-newlines))
(cons 'require-final-newline (list require-final-newline))
(cons 'scroll-step (list scroll-step))