:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-current-diff-face-A 'ediff-current-diff-face-A)
+(defvar ediff-current-diff-face-A 'ediff-current-diff-face-A
+ "Face for highlighting the selected difference in buffer A.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-current-diff-face-A'
+this variable represents.")
(ediff-hide-face 'ediff-current-diff-face-A)
;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
;; This means that some user customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-current-diff-face-B 'ediff-current-diff-face-B)
+(defvar ediff-current-diff-face-B 'ediff-current-diff-face-B
+ "Face for highlighting the selected difference in buffer B.
+ this variable. Instead, use the customization
+widget to customize the actual face `ediff-current-diff-face-B'
+this variable represents.")
(ediff-hide-face 'ediff-current-diff-face-B)
;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
;; This means that some user customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-current-diff-face-C 'ediff-current-diff-face-C)
+(defvar ediff-current-diff-face-C 'ediff-current-diff-face-C
+ "Face for highlighting the selected difference in buffer C.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-current-diff-face-C'
+this variable represents.")
(ediff-hide-face 'ediff-current-diff-face-C)
;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
;; This means that some user customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-current-diff-face-Ancestor 'ediff-current-diff-face-Ancestor)
+(defvar ediff-current-diff-face-Ancestor 'ediff-current-diff-face-Ancestor
+ "Face for highlighting the selected difference in buffer Ancestor.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-current-diff-face-Ancestor'
+this variable represents.")
(ediff-hide-face 'ediff-current-diff-face-Ancestor)
;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
;; This means that some user customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-fine-diff-face-A 'ediff-fine-diff-face-A)
+(defvar ediff-fine-diff-face-A 'ediff-fine-diff-face-A
+ "Face for highlighting the fine differences in buffer A.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-fine-diff-face-A'
+this variable represents.")
(ediff-hide-face 'ediff-fine-diff-face-A)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-fine-diff-face-B 'ediff-fine-diff-face-B)
+(defvar ediff-fine-diff-face-B 'ediff-fine-diff-face-B
+ "Face for highlighting the fine differences in buffer B.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-fine-diff-face-B'
+this variable represents.")
(ediff-hide-face 'ediff-fine-diff-face-B)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-fine-diff-face-C 'ediff-fine-diff-face-C)
+(defvar ediff-fine-diff-face-C 'ediff-fine-diff-face-C
+ "Face for highlighting the fine differences in buffer C.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-fine-diff-face-C'
+this variable represents.")
(ediff-hide-face 'ediff-fine-diff-face-C)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-fine-diff-face-Ancestor 'ediff-fine-diff-face-Ancestor)
+(defvar ediff-fine-diff-face-Ancestor 'ediff-fine-diff-face-Ancestor
+ "Face for highlighting the fine differences in buffer Ancestor.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-fine-diff-face-Ancestor'
+this variable represents.")
(ediff-hide-face 'ediff-fine-diff-face-Ancestor)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-even-diff-face-A 'ediff-even-diff-face-A)
+(defvar ediff-even-diff-face-A 'ediff-even-diff-face-A
+ "Face for highlighting even-numbered non-current differences in buffer A.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-even-diff-face-A'
+this variable represents.")
(ediff-hide-face 'ediff-even-diff-face-A)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-even-diff-face-B 'ediff-even-diff-face-B)
+(defvar ediff-even-diff-face-B 'ediff-even-diff-face-B
+ "Face for highlighting even-numbered non-current differences in buffer B.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-even-diff-face-B'
+this variable represents.")
(ediff-hide-face 'ediff-even-diff-face-B)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-even-diff-face-C 'ediff-even-diff-face-C)
+(defvar ediff-even-diff-face-C 'ediff-even-diff-face-C
+ "Face for highlighting even-numbered non-current differences in buffer C.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-even-diff-face-C'
+this variable represents.")
(ediff-hide-face 'ediff-even-diff-face-C)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-even-diff-face-Ancestor 'ediff-even-diff-face-Ancestor)
+(defvar ediff-even-diff-face-Ancestor 'ediff-even-diff-face-Ancestor
+ "Face for highlighting even-numbered non-current differences in buffer Ancestor.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-even-diff-face-Ancestor'
+this variable represents.")
(ediff-hide-face 'ediff-even-diff-face-Ancestor)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-odd-diff-face-A 'ediff-odd-diff-face-A)
+(defvar ediff-odd-diff-face-A 'ediff-odd-diff-face-A
+ "Face for highlighting odd-numbered non-current differences in buffer A.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-odd-diff-face-A'
+this variable represents.")
(ediff-hide-face 'ediff-odd-diff-face-A)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-odd-diff-face-B 'ediff-odd-diff-face-B)
+(defvar ediff-odd-diff-face-B 'ediff-odd-diff-face-B
+ "Face for highlighting odd-numbered non-current differences in buffer B.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-odd-diff-face-B'
+this variable represents.")
(ediff-hide-face 'ediff-odd-diff-face-B)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-odd-diff-face-C 'ediff-odd-diff-face-C)
+(defvar ediff-odd-diff-face-C 'ediff-odd-diff-face-C
+ "Face for highlighting odd-numbered non-current differences in buffer C.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-odd-diff-face-C'
+this variable represents.")
(ediff-hide-face 'ediff-odd-diff-face-C)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
:group 'ediff-highlighting)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-odd-diff-face-Ancestor 'ediff-odd-diff-face-Ancestor)
+(defvar ediff-odd-diff-face-Ancestor 'ediff-odd-diff-face-Ancestor
+ "Face for highlighting odd-numbered non-current differences in buffer Ancestor.
+DO NOT CHANGE this variable. Instead, use the customization
+widget to customize the actual face object `ediff-odd-diff-face-Ancestor'
+this variable represents.")
(ediff-hide-face 'ediff-odd-diff-face-Ancestor)
;; Until custom.el for XEmacs starts supporting :stipple we do this.
;; This means that some use customization may be trashed.
This means that regions that have status prefer-A or prefer-B will be
skiped over. Nil means show all regions.")
+;; If ediff-show-clashes-only, check if there is no clash between the ancestor
+;; and one of the variants.
+(defsubst ediff-merge-region-is-non-clash (n)
+ (and ediff-show-clashes-only
+ (string-match "prefer" (or (ediff-get-state-of-merge n) ""))))
+
(defsubst ediff-get-combined-region (n)
(concat (nth 0 ediff-combination-pattern) "\n"
(if (< ediff-current-difference ediff-number-of-differences)
(let ((n (min ediff-number-of-differences
(+ ediff-current-difference arg)))
- regexp-skip)
+ non-clash-skip regexp-skip)
(ediff-visible-region)
(or (>= n ediff-number-of-differences)
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
+ ;; this won't exec if regexp-skip is t
+ (setq non-clash-skip (ediff-merge-region-is-non-clash n))
(ediff-install-fine-diff-if-necessary n))
(while (and (< n ediff-number-of-differences)
(or
;; regexp skip
regexp-skip
;; skip clashes, if necessary
- (and ediff-show-clashes-only
- (string-match "prefer"
- (or (ediff-get-state-of-merge n) "")))
+ non-clash-skip
;; skip difference regions that differ in white space
(and ediff-ignore-similar-regions
(eq (ediff-no-fine-diffs-p n) t))))
(message "Skipped over region %d and counting ..." n))
(or (>= n ediff-number-of-differences)
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
+ ;; this won't exec if regexp-skip is t
+ (setq non-clash-skip (ediff-merge-region-is-non-clash n))
(ediff-install-fine-diff-if-necessary n))
)
(message "")
(ediff-barf-if-not-control-buffer)
(if (> ediff-current-difference -1)
(let ((n (max -1 (- ediff-current-difference arg)))
- regexp-skip)
+ non-clash-skip regexp-skip)
(ediff-visible-region)
(or (< n 0)
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
+ ;; this won't exec if regexp-skip is t
+ (setq non-clash-skip (ediff-merge-region-is-non-clash n))
(ediff-install-fine-diff-if-necessary n))
(while (and (> n -1)
(or
;; regexp skip
regexp-skip
;; skip clashes, if necessary
- (and ediff-show-clashes-only
- (string-match "prefer"
- (or (ediff-get-state-of-merge n) "")))
+ non-clash-skip
;; skip difference regions that differ in white space
(and ediff-ignore-similar-regions
(eq (ediff-no-fine-diffs-p n) t))))
(setq n (1- n))
(or (< n 0)
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
+ ;; this won't exec if regexp-skip is t
+ (setq non-clash-skip (ediff-merge-region-is-non-clash n))
(ediff-install-fine-diff-if-necessary n))
)
(message "")
;; Created: February 2, 1994
;; Keywords: comparing, merging, patching, version control.
-(defconst ediff-version "2.67" "The current version of Ediff")
-(defconst ediff-date "September 3, 1997" "Date of last update")
+(defconst ediff-version "2.671" "The current version of Ediff")
+(defconst ediff-date "September 23, 1997" "Date of last update")
;; This file is part of GNU Emacs.
To turn this feature off, set this variable to nil."
:type '(repeat string)
- :group 'viper)
+ :group 'viper-misc)
;; Try to add a suitable suffix to files whose name ends with a `.'
(defun viper-forward-sentence (arg)
"Forward sentence."
(interactive "P")
- (push-mark nil t)
+ (or (eq last-command this-command)
+ (push-mark nil t))
(let ((val (viper-p-val arg))
(com (viper-getcom arg)))
(if com (viper-move-marker-locally 'viper-com-point (point)))
(defun viper-backward-sentence (arg)
"Backward sentence."
(interactive "P")
- (push-mark nil t)
+ (or (eq last-command this-command)
+ (push-mark nil t))
(let ((val (viper-p-val arg))
(com (viper-getcom arg)))
(if com (viper-move-marker-locally 'viper-com-point (point)))
(defun viper-forward-paragraph (arg)
"Forward paragraph."
(interactive "P")
- (push-mark nil t)
+ (or (eq last-command this-command)
+ (push-mark nil t))
(let ((val (viper-p-val arg))
(com (viper-getCom arg)))
(if com (viper-move-marker-locally 'viper-com-point (point)))
(defun viper-backward-paragraph (arg)
"Backward paragraph."
(interactive "P")
- (push-mark nil t)
+ (or (eq last-command this-command)
+ (push-mark nil t))
(let ((val (viper-p-val arg))
(com (viper-getCom arg)))
(if com (viper-move-marker-locally 'viper-com-point (point)))
(viper-execute-com 'viper-backward-paragraph nil com)
(backward-char 1)))))
-;; should be mode-specific etc.
-
+;; should be mode-specific
(defun viper-prev-heading (arg)
(interactive "P")
(let ((val (viper-p-val arg))
(view-register (downcase reg)))
((viper-valid-register reg '(digit))
(let ((text (current-kill (- reg ?1) 'do-not-rotate)))
- (save-excursion
- (set-buffer (get-buffer-create "*Output*"))
- (delete-region (point-min) (point-max))
- (insert (format "Register %c contains the string:\n" reg))
- (insert text)
- (goto-char (point-min)))
- (display-buffer "*Output*")))
+ (with-output-to-temp-buffer " *viper-info*"
+ (princ (format "Register %c contains the string:\n" reg))
+ (princ text))
+ ))
((= ?\] reg)
(viper-next-heading arg))
(t (error
(viper-heading-end arg))
((viper-valid-register reg '(letter))
(let* ((val (get-register (1+ (- reg ?a))))
- (buf (if (not val)
+ (buf (if (not (markerp val))
(error viper-EmptyTextmarker reg)
(marker-buffer val)))
(pos (marker-position val))
line-no text (s pos) (e pos))
- (save-excursion
- (set-buffer (get-buffer-create "*Output*"))
- (delete-region (point-min) (point-max))
+ (with-output-to-temp-buffer " *viper-info*"
(if (and buf pos)
(progn
(save-excursion
(setq text (format "%s<%c>%s"
(substring text 0 (- pos s))
reg (substring text (- pos s)))))
- (insert
+ (princ
(format
"Textmarker `%c' is in buffer `%s' at line %d.\n"
reg (buffer-name buf) line-no))
- (insert (format "Here is some text around %c:\n\n %s"
+ (princ (format "Here is some text around %c:\n\n %s"
reg text)))
- (insert (format viper-EmptyTextmarker reg)))
- (goto-char (point-min)))
- (display-buffer "*Output*")))
+ (princ (format viper-EmptyTextmarker reg))))
+ ))
(t (error viper-InvalidTextmarker reg)))))
;; List of addresses passed to Ex command
(defvar ex-addresses nil)
-;; It seems that this flag is used only for `#', `print', and `list', which
-;; aren't implemented. Check later.
+;; This flag is supposed to be set only by `#', `print', and `list',
+;; none of which is implemented. So, it and the pices of the code it
+;; controls are dead weight. We keep it just in case this might be
+;; needed in the future.
(defvar ex-flag nil)
;; "buffer" where Ex commands keep deleted data.
(copy-region-as-kill (point) (mark t)))
(if ex-flag
(progn
- (with-output-to-temp-buffer "*copy text*"
+ (with-output-to-temp-buffer " *copy text*"
(princ
(if (or del-flag ex-g-flag ex-g-variant)
(current-kill 0)
(buffer-substring (point) (mark t)))))
(condition-case nil
(progn
- (read-string "[Hit return to continue] ")
- (save-excursion (kill-buffer "*copy text*")))
- (quit (save-excursion (kill-buffer "*copy text*"))
+ (read-string "[Hit return to confirm] ")
+ (save-excursion (kill-buffer " *copy text*")))
+ (quit (save-excursion (kill-buffer " *copy text*"))
(signal 'quit nil))))))
(if (= address 0)
(goto-char (point-min))
(with-output-to-temp-buffer " *delete text*"
(princ (buffer-substring (point) (mark t))))
(condition-case nil
- (read-string "[Hit return to continue] ")
+ (read-string "[Hit return to confirm] ")
(quit
(save-excursion (kill-buffer " *delete text*"))
(error "")))
(if ex-flag
;; show text to be joined and ask for confirmation
(progn
- (with-output-to-temp-buffer " *text*"
+ (with-output-to-temp-buffer " *join text*"
(princ (buffer-substring (point) (mark t))))
(condition-case nil
(progn
- (read-string "[Hit return to continue] ")
+ (read-string "[Hit return to confirm] ")
(ex-line-subr com (point) (mark t)))
(quit (ding)))
- (save-excursion (kill-buffer " *text*")))
+ (save-excursion (kill-buffer " *join text*")))
(ex-line-subr com (point) (mark t)))
(setq point (point)))
(goto-char (1- point))
(message (concat file " " info))
(save-window-excursion
(with-output-to-temp-buffer " *viper-info*"
- (princ (concat "\n"
- file "\n\n\t" info
- "\n\n\nPress any key to continue...\n\n")))
- (viper-read-event)
+ (princ (concat "\n" file "\n\n\t" info "\n\n")))
+ (let ((inhibit-quit t))
+ (viper-set-unread-command-events (viper-read-event)))
(kill-buffer " *viper-info*")))
))
(defun viper-window-display-p ()
(and (viper-device-type) (not (memq (viper-device-type) '(tty stream pc)))))
-(defcustom viper-ms-style-os-p (memq system-type '(ms-dos windows-nt windows-95))
+(defcustom viper-ms-style-os-p (memq system-type
+ '(ms-dos windows-nt windows-95))
"Tells if Emacs is running under an MS-style OS: ms-dos, windows-nt, W95."
:type 'boolean
:tag "Is it Microsoft-made OS?"
- :group 'viper)
+ :group 'viper-misc)
(defcustom viper-vms-os-p (memq system-type '(vax-vms axp-vms))
"Tells if Emacs is running under VMS."
:type 'boolean
:tag "Is it VMS?"
- :group 'viper)
+ :group 'viper-misc)
(defcustom viper-force-faces nil
"If t, Viper will think that it is running on a display that supports faces.
that Viper doesn't know about.
In all likelihood, you don't need to bother with this setting."
:type 'boolean
- :group 'viper)
+ :group 'viper-highlighting)
(defun viper-has-face-support-p ()
(cond ((viper-window-display-p))
This is a list where Viper keeps the history of previously inserted pieces of
text."
:type 'integer
- :group 'viper)
+ :group 'viper-misc)
;; The insertion ring.
(defvar viper-insertion-ring nil)
;; This is temp insertion ring. Used to do rotation for display purposes.
(defcustom viper-command-ring-size 14
"The size of history of Vi commands repeatable with dot."
:type 'integer
- :group 'viper)
+ :group 'viper-misc)
;; The command ring.
(defvar viper-command-ring nil)
;; This is temp command ring. Used to do rotation for display purposes.
Setting this too high may slow down your typing. Setting this value too low
will make it hard to use Vi-stile timeout macros."
:type 'integer
- :group 'viper)
+ :group 'viper-misc)
(defcustom viper-ESC-keyseq-timeout (if (viper-window-display-p)
0 viper-fast-keyseq-timeout)
this value too low will make it impossible to use function keys in insert mode
on a dumb terminal."
:type 'integer
- :group 'viper)
+ :group 'viper-misc)
;; Modes and related variables
;;; Variables for Moves and Searches
+(defgroup viper-search nil
+ "Variables that define the search and query-replace behavior of Viper."
+ :prefix "viper-"
+ :group 'viper)
+
;; For use by `;' command.
(defvar viper-f-char nil)
(defcustom viper-case-fold-search nil
"*If not nil, search ignores cases."
:type 'boolean
- :group 'viper)
+ :group 'viper-search)
(defcustom viper-re-search t
"*If not nil, search is regexp search, otherwise vanilla search."
:type 'boolean
:tag "Regexp Search"
- :group 'viper)
+ :group 'viper-search)
(defcustom viper-search-scroll-threshold 2
"*If search lands within this threshnold from the window top/bottom,
If you want Viper search to behave as usual in Vi, set this variable to a
negative number."
:type 'boolean
- :group 'viper)
+ :group 'viper-search)
(defcustom viper-re-query-replace t
"*If t then do regexp replace, if nil then do string replace."
:type 'boolean
:tag "Regexp Query Replace"
- :group 'viper)
+ :group 'viper-search)
(defcustom viper-re-replace t
"*If t, do regexp replace. nil means do string replace."
:type 'boolean
:tag "Regexp Replace"
- :group 'viper)
+ :group 'viper-search)
(defcustom viper-parse-sexp-ignore-comments t
"*If t, `%' ignores the parentheses that occur inside comments."
(defcustom viper-buffer-search-char nil
"*Key used for buffer-searching. Must be a character type, e.g., ?g."
:type '(choice (const nil) character)
- :group 'viper)
+ :group 'viper-search)
(defcustom viper-search-wrap-around-t t
"*If t, search wraps around."
:type 'boolean
:tag "Search Wraps Around"
- :group 'viper)
+ :group 'viper-search)
(viper-deflocalvar viper-related-files-and-buffers-ring nil "")
(defcustom viper-related-files-and-buffers-ring nil
"*List of file and buffer names that are considered to be related to the current buffer.
Related buffers can be cycled through via :R and :P commands."
:type 'boolean
- :group 'viper)
+ :group 'viper-misc)
(put 'viper-related-files-and-buffers-ring 'permanent-local t)
;; Used to find out if we are done with searching the current buffer.
"*Face used to flash out the search pattern."
:group 'viper-highlighting)
;; An internal variable. Viper takes the face from here.
-(defvar viper-search-face 'viper-search-face)
+(defvar viper-search-face 'viper-search-face
+ "Face used to flash out the search pattern.
+DO NOT CHANGE this variable. Instead, use the customization widget
+to customize the actual face object `viper-search-face'
+this variable represents.")
(viper-hide-face 'viper-search-face)
;;(defvar viper-replace-overlay-face
"*Face for highlighting replace regions on a window display."
:group 'viper-highlighting)
;; An internal variable. Viper takes the face from here.
-(defvar viper-replace-overlay-face 'viper-replace-overlay-face)
+(defvar viper-replace-overlay-face 'viper-replace-overlay-face
+ "Face for highlighting replace regions on a window display.
+DO NOT CHANGE this variable. Instead, use the customization widget
+to customize the actual face object `viper-replace-overlay-face'
+this variable represents.")
(viper-hide-face 'viper-replace-overlay-face)
;;(defvar viper-minibuffer-emacs-face
"Face used in the Minibuffer when it is in Emacs state."
:group 'viper-highlighting)
;; An internal variable. Viper takes the face from here.
-(defvar viper-minibuffer-emacs-face 'viper-minibuffer-emacs-face)
+(defvar viper-minibuffer-emacs-face 'viper-minibuffer-emacs-face
+ "Face used in the Minibuffer when it is in Emacs state.
+DO NOT CHANGE this variable. Instead, use the customization widget
+to customize the actual face object `viper-minibuffer-emacs-face'
+this variable represents.")
(viper-hide-face 'viper-minibuffer-emacs-face)
;;(defvar viper-minibuffer-insert-face
"Face used in the Minibuffer when it is in Insert state."
:group 'viper-highlighting)
;; An internal variable. Viper takes the face from here.
-(defvar viper-minibuffer-insert-face 'viper-minibuffer-insert-face)
+(defvar viper-minibuffer-insert-face 'viper-minibuffer-insert-face
+ "Face used in the Minibuffer when it is in Insert state.
+DO NOT CHANGE this variable. Instead, use the customization widget
+to customize the actual face object `viper-minibuffer-insert-face'
+this variable represents.")
(viper-hide-face 'viper-minibuffer-insert-face)
;;(defvar viper-minibuffer-vi-face
"Face used in the Minibuffer when it is in Vi state."
:group 'viper-highlighting)
;; An internal variable. Viper takes the face from here.
-(defvar viper-minibuffer-vi-face 'viper-minibuffer-vi-face)
+(defvar viper-minibuffer-vi-face 'viper-minibuffer-vi-face
+ "Face used in the Minibuffer when it is in Vi state.
+DO NOT CHANGE this variable. Instead, use the customization widget
+to customize the actual face object `viper-minibuffer-vi-face'
+this variable represents.")
(viper-hide-face 'viper-minibuffer-vi-face)
;; the current face to be used in the minibuffer
-(viper-deflocalvar viper-minibuffer-current-face viper-minibuffer-emacs-face "")
+(viper-deflocalvar
+ viper-minibuffer-current-face viper-minibuffer-emacs-face "")
\f
;;; Miscellaneous
(defcustom viper-spell-function 'ispell-region
"Spell function used by #s<move> command to spell."
:type 'function
- :group 'viper)
+ :group 'viper-misc)
(defcustom viper-tags-file-name "TAGS"
"The tags file used by Viper."
:type 'string
- :group 'viper)
+ :group 'viper-misc)
;; Minibuffer
"Mode line tag identifying the Replace mode of Viper.")
+(defgroup viper-hooks nil
+ "Viper hooks."
+ :prefix "viper-"
+ :group 'viper)
+
(defcustom viper-vi-state-hook nil
"*Hooks run just before the switch to Vi mode is completed."
:type 'hook
- :group 'viper)
+ :group 'viper-hooks)
(defcustom viper-insert-state-hook nil
"*Hooks run just before the switch to Insert mode is completed."
:type 'hook
- :group 'viper)
+ :group 'viper-hooks)
(defcustom viper-replace-state-hook nil
"*Hooks run just before the switch to Replace mode is completed."
:type 'hook
- :group 'viper)
+ :group 'viper-hooks)
(defcustom viper-emacs-state-hook nil
"*Hooks run just before the switch to Emacs mode is completed."
:type 'hook
- :group 'viper)
+ :group 'viper-hooks)
(defcustom viper-load-hook nil
"Hooks run just after loading Viper."
:type 'hook
- :group 'viper)
+ :group 'viper-hooks)
;;; Local Variables:
;; Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-(defconst viper-version "3.00 (Polyglot) of August 18, 1997"
+(defconst viper-version "3.001 (Polyglot) of September 23, 1997"
"The current version of Viper")
;; This file is part of GNU Emacs.
(require 'viper-cmd)
+(defgroup viper-misc nil
+ "Miscellaneous Viper customization."
+ :prefix "viper-"
+ :group 'viper)
+
+
(defcustom viper-always t
"Non-nil means, arrange for vi-state to be a default when appropriate.
This is different from `viper-mode' variable in that `viper-mode' determines
user decide when to invoke Viper in a major mode."
:type 'boolean
:tag "Always Invoke Viper"
- :group 'viper)
+ :group 'viper-misc)
;; Non-viper variables that need to be saved in case the user decides to
;; de-viperize emacs.
This variable is used primatily when Viper is being loaded.
Must be set in `~/.emacs' before Viper is loaded.
-DO NOT set this variable interactively."
+DO NOT set this variable interactively, unless you are using the customization
+widget."
:type '(choice (const nil) (const t) (const ask))
:tag "Set Viper Mode on Loading"
- :group 'viper)
+ :group 'viper-misc)
(defcustom viper-non-vi-major-modes
'(custom-mode dired-mode efs-mode internal-ange-ftp-mode tar-mode
`dired-mode', `tar-mode', etc. So, don't put a mode on this list, unless
it comes up in a wrong Viper state."
:type '(repeat symbol)
- :group 'viper)
+ :group 'viper-misc)
\f