From c004db972f6954c6aaf9690045b1d2fdf8396472 Mon Sep 17 00:00:00 2001 From: Michael Kifer <kifer@cs.stonybrook.edu> Date: Tue, 25 Nov 1997 02:10:08 +0000 Subject: new version --- lisp/emulation/viper-cmd.el | 55 +++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 19 deletions(-) (limited to 'lisp/emulation/viper-cmd.el') diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index 51de44bee54..3fb8cce6dfa 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el @@ -1720,21 +1720,32 @@ Undo previous insertion and inserts new." ;; Quote region by each line with a user supplied string. (defun viper-quote-region () - (setq viper-quote-string - (viper-read-string-with-history - "Quote string: " - nil - 'viper-quote-region-history - viper-quote-string)) - (viper-enlarge-region (point) (mark t)) - (if (> (point) (mark t)) (exchange-point-and-mark)) - (insert viper-quote-string) - (beginning-of-line) - (forward-line 1) - (while (and (< (point) (mark t)) (bolp)) - (insert viper-quote-string) + (let ((quote-str viper-quote-string) + (donot-change-dafault t)) + (setq quote-str + (viper-read-string-with-history + "Quote string: " + nil + 'viper-quote-region-history + (cond ((string-match "tex.*-mode" (symbol-name major-mode)) "%%") + ((string-match "java.*-mode" (symbol-name major-mode)) "//") + ((string-match "perl.*-mode" (symbol-name major-mode)) "#") + ((string-match "lisp.*-mode" (symbol-name major-mode)) ";;") + ((memq major-mode '(c-mode cc-mode c++-mode)) "//") + ((memq major-mode '(sh-mode shell-mode)) "#") + (t (setq donot-change-dafault nil) + quote-str)))) + (or donot-change-dafault + (setq viper-quote-string quote-str)) + (viper-enlarge-region (point) (mark t)) + (if (> (point) (mark t)) (exchange-point-and-mark)) + (insert quote-str) (beginning-of-line) - (forward-line 1))) + (forward-line 1) + (while (and (< (point) (mark t)) (bolp)) + (insert quote-str) + (beginning-of-line) + (forward-line 1)))) ;; Tells whether BEG is on the same line as END. ;; If one of the args is nil, it'll return nil. @@ -1870,15 +1881,21 @@ problems." ;;; Reading string with history (defun viper-read-string-with-history (prompt &optional initial - history-var default keymap) + history-var default keymap + init-message) ;; Read string, prompting with PROMPT and inserting the INITIAL ;; value. Uses HISTORY-VAR. DEFAULT is the default value to accept if the - ;; input is an empty string. Use KEYMAP, if given, or the - ;; minibuffer-local-map. + ;; input is an empty string. ;; Default value is displayed until the user types something in the ;; minibuffer. + ;; KEYMAP is used, if given, instead of minibuffer-local-map. + ;; INIT-MESSAGE is the message temporarily displayed after entering the + ;; minibuffer. (let ((minibuffer-setup-hook - '(lambda () + (function + (lambda () + (if (stringp init-message) + (viper-tmp-insert-at-eob init-message)) (if (stringp initial) (progn ;; don't wait if we have unread events or in kbd macro @@ -1887,7 +1904,7 @@ problems." (sit-for 840)) (erase-buffer) (insert initial))) - (viper-minibuffer-setup-sentinel))) + (viper-minibuffer-setup-sentinel)))) (val "") (padding "") temp-msg) -- cgit v1.2.1