From d35bee0ea6fd4db8a1ff830a34d64b4ffc87ccb4 Mon Sep 17 00:00:00 2001 From: Michael Kifer Date: Fri, 7 Apr 2000 16:10:04 +0000 Subject: [PATCH] 2000-04-07 Mikio Nakajima * viper-util.el (viper-put-on-search-overlay): New subroutine. (viper-flash-search-pattern): No operation when using Emacs doesn't support face. Use `viper-put-on-search-overlay'. --- lisp/ChangeLog | 7 +++++++ lisp/emulation/viper-ex.el | 14 ++++++++++++-- lisp/emulation/viper-util.el | 34 ++++++++++++++++++++-------------- man/viper.texi | 13 +++++++++++++ 4 files changed, 52 insertions(+), 16 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cdfe28cbd83..c7ea212af6c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2000-04-07 Mikio Nakajima + + * viper-util.el (viper-put-on-search-overlay): New subroutine. + (viper-flash-search-pattern): No operation when using Emacs + doesn't support face. + Use `viper-put-on-search-overlay'. + 2000-04-04 Gerd Moellmann * isearch.el (isearch-mode-map): Define M-C-s like C-s and M-C-r diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el index ef57e8ceb95..2a0d40de71e 100644 --- a/lisp/emulation/viper-ex.el +++ b/lisp/emulation/viper-ex.el @@ -1956,8 +1956,13 @@ Please contact your system administrator. " (progn (while (and (not (eolp)) (re-search-forward pat eol-mark t)) - (if (or (not opt-c) (y-or-n-p "Replace? ")) + (if (or (not opt-c) + (progn + (viper-put-on-search-overlay (match-beginning 0) + (match-end 0)) + (y-or-n-p "Replace? "))) (progn + (viper-hide-search-overlay) (setq matched-pos (point)) (if (not (stringp repl)) (error "Can't perform Ex substitution: No previous replacement pattern")) @@ -1968,8 +1973,13 @@ Please contact your system administrator. " (error "Can't repeat Ex substitution: No previous regular expression")) (if (and (re-search-forward pat eol-mark t) - (or (not opt-c) (y-or-n-p "Replace? "))) + (or (not opt-c) + (progn + (viper-put-on-search-overlay (match-beginning 0) + (match-end 0)) + (y-or-n-p "Replace? ")))) (progn + (viper-hide-search-overlay) (setq matched-pos (point)) (if (not (stringp repl)) (error "Can't perform Ex substitution: No previous replacement pattern")) diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el index b384710e1e3..8d7a749d15e 100644 --- a/lisp/emulation/viper-util.el +++ b/lisp/emulation/viper-util.el @@ -680,25 +680,31 @@ ;;; Overlays +(defun viper-put-on-search-overlay (beg end) + (if (viper-overlay-p viper-search-overlay) + (viper-move-overlay viper-search-overlay beg end) + (setq viper-search-overlay (viper-make-overlay beg end (current-buffer))) + (viper-overlay-put + viper-search-overlay 'priority viper-search-overlay-priority)) + (viper-overlay-put viper-search-overlay 'face viper-search-face)) ;; Search (defun viper-flash-search-pattern () - (if (viper-overlay-p viper-search-overlay) - (viper-move-overlay - viper-search-overlay (match-beginning 0) (match-end 0)) - (setq viper-search-overlay - (viper-make-overlay - (match-beginning 0) (match-end 0) (current-buffer)))) - - (viper-overlay-put - viper-search-overlay 'priority viper-search-overlay-priority) - (if (viper-has-face-support-p) + (if (not (viper-has-face-support-p)) + nil + (viper-put-on-search-overlay (match-beginning 0) (match-end 0)) + (sit-for 2) + (viper-overlay-put viper-search-overlay 'face nil))) + +(defun viper-hide-search-overlay () + (if (not (viper-overlay-p viper-search-overlay)) (progn - (viper-overlay-put viper-search-overlay 'face viper-search-face) - (sit-for 2) - (viper-overlay-put viper-search-overlay 'face nil)))) - + (setq viper-search-overlay + (viper-make-overlay beg end (current-buffer))) + (viper-overlay-put + viper-search-overlay 'priority viper-search-overlay-priority))) + (viper-overlay-put viper-search-overlay 'face nil)) ;; Replace state diff --git a/man/viper.texi b/man/viper.texi index 273382ec71c..655a8c5983b 100644 --- a/man/viper.texi +++ b/man/viper.texi @@ -1739,6 +1739,19 @@ executed. Otherwise, it is processed as an ordinary sequence of typed keys. Setting this variable too high may slow down your typing. Setting it too low may make it hard to type macros quickly enough. +@item viper-translate-all-ESC-keysequences t on tty, nil on windowing display +Normally, Viper lets Emacs translate only those ESC key sequences that are +defined in the low-level key-translation-map or function-key-map, such as those +emitted by the arrow and function keys. Other sequences, e.g., @kbd{\\e/}, are +treated as @kbd{ESC} command followed by a @kbd{/}. This is good for people +who type fast and tend to hit other characters right after they hit +ESC. Other people like Emacs to translate @kbd{ESC} sequences all the time. +The default is to translate all sequences only when using a dumb terminal. +This permits you to use @kbd{ESC} as a meta key in insert mode. For instance, +hitting @kbd{ESC x} fast would have the effect of typing @kbd{M-x}. +If your dumb terminal is not so dumb and understands the meta key, then you +probably will be better off setting this variable to nil. Try and see which +way suits you best. @item viper-ex-style-motion t Set this to @code{nil}, if you want @kbd{l,h} to cross lines, etc. @xref{Movement and Markers}, for more info. -- 2.39.5