;; and a venomous VI PERil.
;; Viper Is also a Package for Emacs Rebels.
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-;; 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2011 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
;; Keywords: emulations
+;; Version: 3.14.1
;; Yoni Rabkin <yoni@rabkins.net> contacted the maintainer of this
;; file on 20/3/2008, and the maintainer agreed that when a bug is
;; Remove local value in all existing buffers
;; This doesn't delocalize vars (which would have been desirable)
(defun viper-delocalize-var (symbol)
- (mapcar (lambda (buf) (save-excursion
- (set-buffer buf)
- (kill-local-variable symbol)))
- (buffer-list)))
+ (dolist (buf (buffer-list))
+ (with-current-buffer buf
+ (kill-local-variable symbol))))
(defun viper-go-away ()
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))
+ (setq-default major-mode
+ (viper-standard-value 'default-major-mode
+ viper-saved-non-viper-variables))
(if (featurep 'emacs)
(setq-default
;; in Fundamental Mode and Vi state.
;; When viper-mode is executed in such a case, it will set the major mode
;; back to fundamental-mode.
- (if (eq default-major-mode 'fundamental-mode)
- (setq default-major-mode 'viper-mode))
+ (if (eq (default-value 'major-mode) 'fundamental-mode)
+ (setq-default major-mode 'viper-mode))
(add-hook 'change-major-mode-hook 'viper-major-mode-change-sentinel)
(add-hook 'find-file-hooks 'set-viper-state-in-major-mode)
))
;; Tell vc-diff to put *vc* in Vi mode
- (if (featurep 'vc)
- (defadvice vc-diff (after viper-vc-ad activate)
- "Force Vi state in VC diff buffer."
- (viper-change-state-to-vi))
- (eval-after-load
- "vc"
- '(defadvice vc-diff (after viper-vc-ad activate)
- "Force Vi state in VC diff buffer."
- (viper-change-state-to-vi))))
+ (eval-after-load
+ "vc"
+ '(defadvice vc-diff (after viper-vc-ad activate)
+ "Force Vi state in VC diff buffer."
+ (viper-change-state-to-vi)))
(eval-after-load
"emerge"
'(defadvice emerge-quit (after viper-emerge-advice activate)
"Run `viper-change-state-to-vi' after quitting emerge."
(viper-change-state-to-vi)))
- ;; In case Emerge was loaded before Viper.
- (defadvice emerge-quit (after viper-emerge-advice activate)
- "Run `viper-change-state-to-vi' after quitting emerge."
- (viper-change-state-to-vi))
;; passwd.el sets up its own buffer, which turns up in Vi mode,
;; thus overriding the local map. We don't need Vi mode here.
(defadvice self-insert-command (around viper-self-insert-ad activate)
"Ignore all self-inserting keys in the vi-state."
- (if (and (eq viper-current-state 'vi-state) (interactive-p))
+ (if (and (eq viper-current-state 'vi-state)
+ ;; Do not use called-interactively-p here. XEmacs does not have it
+ ;; and interactive-p is just fine.
+ ;; (called-interactively-p 'interactive))
+ (interactive-p))
(beep 1)
ad-do-it
))
'(defadvice rmail-cease-edit (after viper-rmail-advice activate)
"Switch to Emacs state when done editing message."
(viper-change-state-to-emacs)))
- ;; In case RMAIL was loaded before Viper.
- (defadvice rmail-cease-edit (after viper-rmail-advice activate)
- "Switch to emacs state when done editing message."
- (viper-change-state-to-emacs))
;; ISO accents
;; Need to do it after loading iso-acc, or else this loading will wipe out
(if (null viper-saved-non-viper-variables)
(setq viper-saved-non-viper-variables
(list
- (cons 'default-major-mode (list default-major-mode))
+ (cons 'default-major-mode (list (default-value '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))
;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
;; End:
-;; arch-tag: 5f3e844c-c4e6-4bbd-9b73-63bdc14e7d79
;;; viper.el ends here