• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/emulation/

Lines Matching +defs:viper +defs:window +defs:display

0 ;;; viper-init.el --- some common definitions for Viper
29 (provide 'viper-init)
35 (defvar viper-current-state)
36 (defvar viper-version)
37 (defvar viper-expert-level)
48 (defun viper-version ()
50 (message "Viper version is %s" viper-version))
53 (defconst viper-xemacs-p (string-match "XEmacs" emacs-version))
55 (defconst viper-emacs-p (not viper-xemacs-p))
56 ;; Tell whether we are running as a window application or on a TTY
63 (defmacro viper-cond-compile-for-xemacs-or-emacs (xemacs-form emacs-form)
68 (defsubst viper-device-type ()
69 (viper-cond-compile-for-xemacs-or-emacs
71 window-system
74 (defun viper-color-display-p ()
76 (viper-cond-compile-for-xemacs-or-emacs
78 (if (fboundp 'display-color-p) ; emacs form
79 (display-color-p)
80 (x-display-color-p))
85 (defun viper-window-display-p ()
86 (and (viper-device-type) (not (memq (viper-device-type) '(tty stream pc)))))
88 (defcustom viper-ms-style-os-p (memq system-type
93 :group 'viper-misc)
94 (defcustom viper-vms-os-p (memq system-type '(vax-vms axp-vms))
98 :group 'viper-misc)
100 (defcustom viper-force-faces nil
101 "If t, Viper will think that it is running on a display that supports faces.
106 :group 'viper-highlighting)
108 (defun viper-has-face-support-p ()
109 (cond ((viper-window-display-p))
110 (viper-force-faces)
111 ((viper-color-display-p))
112 (viper-emacs-p (memq (viper-device-type) '(pc)))
113 (viper-xemacs-p (memq (viper-device-type) '(tty pc)))))
119 (defmacro viper-deflocalvar (var default-value &optional documentation)
125 ;; (viper-loop COUNT BODY) Execute BODY COUNT times.
126 (defmacro viper-loop (count &rest body)
132 (defmacro viper-buffer-live-p (buf)
136 (defmacro viper-kbd-buf-alist (macro-elt)
139 (defmacro viper-kbd-buf-pair (macro-elt)
140 `(assoc (buffer-name) (viper-kbd-buf-alist ,macro-elt)))
142 (defmacro viper-kbd-buf-definition (macro-elt)
143 `(cdr (viper-kbd-buf-pair ,macro-elt)))
146 (defmacro viper-kbd-mode-alist (macro-elt)
149 (defmacro viper-kbd-mode-pair (macro-elt)
150 `(assoc major-mode (viper-kbd-mode-alist ,macro-elt)))
152 (defmacro viper-kbd-mode-definition (macro-elt)
153 `(cdr (viper-kbd-mode-pair ,macro-elt)))
156 (defmacro viper-kbd-global-pair (macro-elt)
159 (defmacro viper-kbd-global-definition (macro-elt)
160 `(cdr (viper-kbd-global-pair ,macro-elt)))
163 (defsubst viper-seq-last-elt (seq)
166 (defsubst viper-string-to-list (string)
169 (defsubst viper-charlist-to-string (list)
173 (defun viper-char-at-pos (direction &optional offset)
181 (defvar viper-minibuffer-overlay-priority 300)
182 (defvar viper-replace-overlay-priority 400)
183 (defvar viper-search-overlay-priority 500)
190 (viper-deflocalvar viper-vi-intercept-minor-mode nil)
192 (viper-deflocalvar viper-vi-basic-minor-mode nil
195 (viper-deflocalvar viper-vi-local-user-minor-mode nil
198 (viper-deflocalvar viper-vi-global-user-minor-mode nil
201 (viper-deflocalvar viper-vi-state-modifier-minor-mode nil
204 (viper-deflocalvar viper-vi-diehard-minor-mode nil
207 (viper-deflocalvar viper-vi-kbd-minor-mode nil
213 (viper-deflocalvar viper-insert-intercept-minor-mode nil)
215 (viper-deflocalvar viper-insert-basic-minor-mode nil
218 (viper-deflocalvar viper-insert-local-user-minor-mode nil
223 (viper-deflocalvar viper-insert-global-user-minor-mode nil
226 (viper-deflocalvar viper-insert-state-modifier-minor-mode nil
229 (viper-deflocalvar viper-insert-diehard-minor-mode nil
233 (viper-deflocalvar viper-insert-kbd-minor-mode nil
238 (viper-deflocalvar viper-replace-minor-mode nil
241 ;; Mode for vital things like \C-z and \C-x) This is set to t, when viper-mode
244 (viper-deflocalvar viper-emacs-intercept-minor-mode nil)
246 (viper-deflocalvar viper-emacs-local-user-minor-mode nil
251 (viper-deflocalvar viper-emacs-global-user-minor-mode nil
256 (viper-deflocalvar viper-emacs-kbd-minor-mode nil
259 `viper-record-kbd-macro' command. There is no Ex-level command to do this
262 (viper-deflocalvar viper-emacs-state-modifier-minor-mode nil
267 (viper-deflocalvar viper-vi-minibuffer-minor-mode nil
270 (viper-deflocalvar viper-insert-minibuffer-minor-mode nil
278 (defconst viper-SpuriousText "Spurious text after command" "")
279 (defconst viper-BadExCommand "Not an editor command" "")
280 (defconst viper-InvalidCommandArgument "Invalid command argument" "")
281 (defconst viper-NoPrevSearch "No previous search string" "")
282 (defconst viper-EmptyRegister "`%c': Nothing in this register" "")
283 (defconst viper-InvalidRegister "`%c': Invalid register" "")
284 (defconst viper-EmptyTextmarker "`%c': Text marker doesn't point anywhere" "")
285 (defconst viper-InvalidTextmarker "`%c': Invalid text marker" "")
286 (defconst viper-InvalidViCommand "Invalid command" "")
287 (defconst viper-BadAddress "Ill-formed address" "")
288 (defconst viper-FirstAddrExceedsSecond "First address exceeds second" "")
289 (defconst viper-NoFileSpecified "No file specified" "")
291 ;; Is t until viper-mode executes for the very first time.
293 (defvar viper-first-time t)
295 (defvar viper-expert-level (if (boundp 'viper-expert-level) viper-expert-level 0)
297 The minor mode viper-vi-diehard-minor-mode is in effect when
298 viper-expert-level is 1 or 2 or when viper-want-emacs-keys-in-vi is t.
299 The minor mode viper-insert-diehard-minor-mode is in effect when
300 viper-expert-level is 1 or 2 or if viper-want-emacs-keys-in-insert is t.
301 Use `M-x viper-set-expert-level' to change this.")
305 (defconst viper-max-expert-level 5)
313 (viper-deflocalvar viper-automatic-iso-accents nil "")
315 (defsubst viper-set-iso-accents-mode (arg)
319 ;; Internal flag used to control when viper mule hooks are run.
321 (defvar viper-mule-hook-flag t)
323 (viper-deflocalvar viper-special-input-method nil "")
325 ;; viper hook to run on input-method activation
326 (defun viper-activate-input-method-action ()
327 (if (null viper-mule-hook-flag)
329 (setq viper-special-input-method t)
331 (if (eq viper-current-state 'vi-state)
332 (viper-set-input-method nil))
333 (if (memq viper-current-state '(vi-state insert-state replace-state))
341 ;; viper hook to run on input-method deactivation
342 (defun viper-inactivate-input-method-action ()
343 (if (null viper-mule-hook-flag)
345 (setq viper-special-input-method nil)
346 (if (memq viper-current-state '(vi-state insert-state replace-state))
353 (defun viper-inactivate-input-method ()
354 (cond ((and viper-emacs-p (fboundp 'inactivate-input-method))
356 ((and viper-xemacs-p (boundp 'current-input-method))
367 (defun viper-activate-input-method ()
368 (cond ((and viper-emacs-p (fboundp 'activate-input-method))
374 (defun viper-set-input-method (arg)
375 (setq viper-mule-hook-flag t) ; just a precaution
376 (let (viper-mule-hook-flag) ; temporarily inactivate viper mule hooks
379 (viper-activate-input-method))
381 (viper-inactivate-input-method)))
388 (viper-deflocalvar viper-undo-needs-adjustment nil)
389 (put 'viper-undo-needs-adjustment 'permanent-local t)
393 ;; erased by viper-change-state-to-vi and viper-repeat.
394 (defconst viper-buffer-undo-list-mark 'viper)
396 (defcustom viper-keep-point-on-undo nil
402 :group 'viper)
407 (viper-deflocalvar viper-intermediate-command nil "")
410 ;; viper-set-destructive-command whenever (this-command-keys) doesn't give the
414 (defconst viper-this-command-keys nil)
417 (viper-deflocalvar viper-began-as-replace nil "")
419 (defcustom viper-allow-multiline-replace-regions t
425 :group 'viper)
427 (defcustom viper-replace-overlay-cursor-color "Red"
430 :group 'viper)
432 (make-variable-frame-local 'viper-replace-overlay-cursor-color))
434 (defcustom viper-insert-state-cursor-color "Green"
437 :group 'viper)
439 (make-variable-frame-local 'viper-insert-state-cursor-color))
441 ;; viper-emacs-state-cursor-color doesn't work well. Causes cursor colors to be
443 ;; (defcustom viper-emacs-state-cursor-color "Magenta"
444 (defcustom viper-emacs-state-cursor-color nil
447 :group 'viper)
449 (make-variable-frame-local 'viper-emacs-state-cursor-color))
452 (defvar viper-vi-state-cursor-color nil)
454 (make-variable-frame-local 'viper-vi-state-cursor-color))
456 (viper-deflocalvar viper-replace-overlay nil "")
457 (put 'viper-replace-overlay 'permanent-local t)
459 (defcustom viper-replace-region-end-delimiter "$"
461 It is used only with TTYs or if `viper-use-replace-region-delimiters'
464 :group 'viper)
465 (defcustom viper-replace-region-start-delimiter ""
467 It is used only with TTYs or if `viper-use-replace-region-delimiters'
470 :group 'viper)
471 (defcustom viper-use-replace-region-delimiters
472 (or (not (viper-has-face-support-p))
473 (and viper-xemacs-p (eq (viper-device-type) 'tty)))
474 "*If non-nil, Viper will always use `viper-replace-region-end-delimiter' and
475 `viper-replace-region-start-delimiter' to delimit replacement regions, even on
478 :group 'viper)
480 (defcustom viper-read-buffer-function 'read-buffer
483 :group 'viper)
486 (viper-cond-compile-for-xemacs-or-emacs
488 (or (glyphp viper-replace-region-end-delimiter)
489 (setq viper-replace-region-end-delimiter
490 (make-glyph viper-replace-region-end-delimiter)))
491 (or (glyphp viper-replace-region-start-delimiter)
492 (setq viper-replace-region-start-delimiter
493 (make-glyph viper-replace-region-start-delimiter)))
501 ;; `viper-move-marker-locally'
504 (viper-deflocalvar viper-last-posn-in-replace-region nil)
506 (viper-deflocalvar viper-last-posn-while-in-insert-state nil)
507 (put 'viper-last-posn-in-replace-region 'permanent-local t)
508 (put 'viper-last-posn-while-in-insert-state 'permanent-local t)
510 (viper-deflocalvar viper-sitting-in-replace nil "")
511 (put 'viper-sitting-in-replace 'permanent-local t)
515 (viper-deflocalvar viper-replace-chars-to-delete 0 "")
521 (viper-deflocalvar viper-replace-region-chars-deleted 0 "")
524 (defcustom viper-insertion-ring-size 14
529 :group 'viper-misc)
531 (defvar viper-insertion-ring nil)
532 ;; This is temp insertion ring. Used to do rotation for display purposes.
533 ;; When rotation just started, it is initialized to viper-insertion-ring.
534 (defvar viper-temp-insertion-ring nil)
535 (defvar viper-last-inserted-string-from-insertion-ring "")
537 (defcustom viper-command-ring-size 14
540 :group 'viper-misc)
542 (defvar viper-command-ring nil)
543 ;; This is temp command ring. Used to do rotation for display purposes.
544 ;; When rotation just started, it is initialized to viper-command-ring.
545 (defvar viper-temp-command-ring nil)
548 (defcustom viper-fast-keyseq-timeout 200
553 :group 'viper-misc)
555 (defcustom viper-ESC-keyseq-timeout (if (viper-window-display-p)
556 0 viper-fast-keyseq-timeout)
562 :group 'viper-misc)
564 (defcustom viper-translate-all-ESC-keysequences (not (viper-window-display-p))
575 :group 'viper-misc)
580 (viper-deflocalvar viper-current-state 'emacs-state)
586 (viper-deflocalvar viper-cted nil "")
589 (viper-deflocalvar viper-current-indent 0)
592 (viper-deflocalvar viper-preserve-indent nil)
594 (viper-deflocalvar viper-auto-indent nil "")
595 (defcustom viper-auto-indent nil
599 :group 'viper)
601 (viper-deflocalvar viper-electric-mode t "")
602 (defcustom viper-electric-mode t
610 :group 'viper)
612 (defcustom viper-shift-width 8
617 :group 'viper)
621 (defcustom viper-keep-point-on-repeat t
627 :group 'viper)
630 ;; initialized to nil and moved with `viper-move-marker-locally'.
631 (viper-deflocalvar viper-insert-point nil)
632 (put 'viper-insert-point 'permanent-local t)
635 ;; If viper-insert-point turns out to be bigger than that, it is reset
636 ;; back to viper-pre-command-point.
640 ;; If dabbrev-expand is called after `blo' and ^ undicates viper-insert-point,
645 ;; viper-insert-point marker. So, Viper will think that nothing was
652 (viper-deflocalvar viper-pre-command-point nil)
653 (put 'viper-pre-command-point 'permanent-local t) ; this is probably an overkill
656 (defvar viper-last-insertion nil)
659 (defvar viper-last-replace-region "")
662 ;; This is a local marker. Should be moved with `viper-move-marker-locally'
663 (viper-deflocalvar viper-com-point nil)
675 (defvar viper-d-com nil)
678 (defvar viper-d-char nil)
681 (defvar viper-use-register nil)
686 (defgroup viper-search nil
688 :prefix "viper-"
689 :group 'viper)
692 (defvar viper-f-char nil)
695 (defvar viper-F-char nil)
698 (defvar viper-f-forward nil)
701 (defvar viper-f-offset nil)
704 (defvar viper-s-string "")
706 (defcustom viper-quote-string "> "
709 :group 'viper)
712 (defvar viper-s-forward nil)
714 (defcustom viper-case-fold-search nil
717 :group 'viper-search)
719 (defcustom viper-re-search t
723 :group 'viper-search)
725 (defcustom viper-search-scroll-threshold 2
726 "*If search lands within this threshnold from the window top/bottom,
727 the window will be scrolled up or down appropriately, to reveal context.
731 :group 'viper-search)
733 (defcustom viper-re-query-replace t
737 :group 'viper-search)
739 (defcustom viper-re-replace t
743 :group 'viper-search)
745 (defcustom viper-parse-sexp-ignore-comments t
748 :group 'viper)
750 (viper-deflocalvar viper-ex-style-motion t "")
751 (defcustom viper-ex-style-motion t
755 :group 'viper)
757 (viper-deflocalvar viper-ex-style-editing t "")
758 (defcustom viper-ex-style-editing t
767 :group 'viper)
769 (viper-deflocalvar viper-ESC-moves-cursor-back viper-ex-style-editing "")
770 (defcustom viper-ESC-moves-cursor-back nil
774 :group 'viper)
776 (viper-deflocalvar viper-delete-backwards-in-replace nil "")
777 (defcustom viper-delete-backwards-in-replace nil
781 :group 'viper)
783 (defcustom viper-buffer-search-char nil
786 :group 'viper-search)
788 (defcustom viper-search-wrap-around-t t
792 :group 'viper-search)
794 (viper-deflocalvar viper-related-files-and-buffers-ring nil "")
795 (defcustom viper-related-files-and-buffers-ring nil
799 :group 'viper-misc)
800 (put 'viper-related-files-and-buffers-ring 'permanent-local t)
803 (viper-deflocalvar viper-local-search-start-marker nil)
805 (defvar viper-search-start-marker (make-marker))
808 (viper-deflocalvar viper-search-overlay nil)
811 (defvar viper-heading-start
820 (defvar viper-heading-end
835 (viper-deflocalvar viper-last-jump nil)
837 (viper-deflocalvar viper-last-jump-ignore 0)
842 (defvar viper-search-history (list ""))
844 (defvar viper-replace1-history nil)
846 (defvar viper-replace2-history nil)
848 (defvar viper-quote-region-history (list viper-quote-string))
850 (defvar viper-ex-history nil)
852 (defvar viper-shell-history nil)
855 ;; Last shell command. There are two of these, one for Ex (in viper-ex)
859 (defvar viper-last-shell-com nil)
865 (defgroup viper-highlighting nil
867 :prefix "viper-"
868 :group 'viper)
871 (defface viper-search
875 :group 'viper-highlighting)
877 (defvar viper-search-face 'viper-search
880 to customize the actual face object `viper-search'
883 (defface viper-replace-overlay
886 "*Face for highlighting replace regions on a window display."
887 :group 'viper-highlighting)
889 (defvar viper-replace-overlay-face 'viper-replace-overlay
890 "Face for highlighting replace regions on a window display.
892 to customize the actual face object `viper-replace-overlay'
895 (defface viper-minibuffer-emacs
899 :group 'viper-highlighting)
901 (defvar viper-minibuffer-emacs-face 'viper-minibuffer-emacs
904 to customize the actual face object `viper-minibuffer-emacs'
907 (defface viper-minibuffer-insert
911 :group 'viper-highlighting)
913 (defvar viper-minibuffer-insert-face 'viper-minibuffer-insert
916 to customize the actual face object `viper-minibuffer-insert'
919 (defface viper-minibuffer-vi
923 :group 'viper-highlighting)
925 (defvar viper-minibuffer-vi-face 'viper-minibuffer-vi
928 to customize the actual face object `viper-minibuffer-vi'
932 (viper-deflocalvar
933 viper-minibuffer-current-face viper-minibuffer-emacs-face "")
939 (defvar viper-inhibit-startup-message nil
942 (defcustom viper-spell-function 'ispell-region
945 :group 'viper-misc)
947 (defcustom viper-tags-file-name "TAGS"
950 :group 'viper-misc)
952 (defcustom viper-change-notification-threshold 1
958 :group 'viper-misc)
962 (defcustom viper-vi-style-in-minibuffer t
964 Should be set in `~/.viper' file."
966 :group 'viper)
969 (viper-deflocalvar viper-minibuffer-overlay nil)
970 (put 'viper-minibuffer-overlay 'permanent-local t)
975 (defvar viper-minibuffer-exit-hook nil)
979 (defconst viper-vi-state-id "<V> "
981 (defconst viper-emacs-state-id "<E> "
983 (defconst viper-insert-state-id "<I> "
985 (defconst viper-replace-state-id "<R> "
989 (defgroup viper-hooks nil
991 :prefix "viper-"
992 :group 'viper)
994 (defcustom viper-vi-state-hook 'viper-restore-cursor-type
997 :group 'viper-hooks)
998 (defcustom viper-insert-state-hook 'viper-set-insert-cursor-type
1001 :group 'viper-hooks)
1002 (defcustom viper-replace-state-hook 'viper-restore-cursor-type
1005 :group 'viper-hooks)
1006 (defcustom viper-emacs-state-hook 'viper-restore-cursor-type
1009 :group 'viper-hooks)
1011 (defcustom viper-load-hook nil
1014 :group 'viper-hooks)
1016 (defun viper-restore-cursor-type ()
1018 (if viper-xemacs-p
1023 (defun viper-set-insert-cursor-type ()
1024 (if viper-xemacs-p
1030 ;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
1034 ;;; viper-init.el ends here