From: Chong Yidong Date: Wed, 7 Nov 2012 20:43:38 +0000 (+0800) Subject: Fix and docfix for the minibuffer-eldef-shorten-default feature. X-Git-Tag: emacs-24.2.90~145 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/7d806bfec978fbc99c95797e4f236daa44c44007 Fix and docfix for the minibuffer-eldef-shorten-default feature. * lisp/minibuf-eldef.el (minibuffer-eldef-shorten-default): Convert to a defcustom with an appropriate :set function. (minibuffer-default--in-prompt-regexps): New function. * doc/emacs/mini.texi (Basic Minibuffer): New node. Document minibuffer-electric-default-mode. * doc/emacs/display.texi (Visual Line Mode): Fix index entry. --- diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 489da45983..5804af2733 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,5 +1,10 @@ 2012-11-07 Chong Yidong + * mini.texi (Basic Minibuffer): New node. Document + minibuffer-electric-default-mode. + + * display.texi (Visual Line Mode): Fix index entry. + * buffers.texi (Several Buffers): List Buffer Menu command anmes, and index the keybindings. Document tabulated-list-sort. (Kill Buffer): Capitalize Buffer Menu. diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index c40c545ec5..b6ab4913f9 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -1500,6 +1500,7 @@ attempts to wrap the line at word boundaries near the right window edge. This makes the text easier to read, as wrapping does not occur in the middle of words. +@cindex mode, Visual Line @cindex Visual Line mode @findex visual-line-mode @findex global-visual-line-mode diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index e7e0feb9e8..74da3d9587 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -261,6 +261,7 @@ Basic Editing Commands The Minibuffer +* Basic Minibuffer:: Basic usage of the minibuffer. * Minibuffer File:: Entering file names with the minibuffer. * Minibuffer Edit:: How to edit in the minibuffer. * Completion:: An abbreviation facility for minibuffer input. diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index e5a84bda56..ebccedacc0 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -13,24 +13,54 @@ special-purpose buffer with a small amount of screen space. You can use the usual Emacs editing commands in the minibuffer to edit the argument text. +@menu +* Basic Minibuffer:: Basic usage of the minibuffer. +* Minibuffer File:: Entering file names with the minibuffer. +* Minibuffer Edit:: How to edit in the minibuffer. +* Completion:: An abbreviation facility for minibuffer input. +* Minibuffer History:: Reusing recent minibuffer arguments. +* Repetition:: Re-executing commands that used the minibuffer. +* Passwords:: Entering passwords in the echo area. +* Yes or No Prompts:: Replying yes or no in the echo area. +@end menu + +@node Basic Minibuffer +@section Using the Minibuffer + @cindex prompt When the minibuffer is in use, it appears in the echo area, with a -cursor. The minibuffer starts with a @dfn{prompt} in a distinct -color, usually ending with a colon. The prompt states what kind of -input is expected, and how it will be used. +cursor. The minibuffer starts with a @dfn{prompt}, usually ending +with a colon. The prompt states what kind of input is expected, and +how it will be used. The prompt is highlighted using the +@code{minibuffer-prompt} face (@pxref{Faces}). The simplest way to enter a minibuffer argument is to type the text, -then @key{RET} to submit the argument and exit the minibuffer. You -can cancel the minibuffer, and the command that wants the argument, by -typing @kbd{C-g}. +then @key{RET} to submit the argument and exit the minibuffer. +Alternatively, you can type @kbd{C-g} to exit the minibuffer by +cancelling the command asking for the argument (@pxref{Quitting}). @cindex default argument - Sometimes, a @dfn{default argument} appears in the prompt, inside + Sometimes, the prompt shows a @dfn{default argument}, inside parentheses before the colon. This default will be used as the argument if you just type @key{RET}. For example, commands that read buffer names usually show a buffer name as the default; you can type @key{RET} to operate on that default buffer. +@cindex Minibuffer Electric Default mode +@cindex mode, Minibuffer Electric Default +@findex minibuffer-electric-default-mode +@vindex minibuffer-eldef-shorten-default + If you enable Minibuffer Electric Default mode, a global minor mode, +Emacs hides the default argument as soon as you modify the contents of +the minibuffer (since typing @key{RET} would no longer submit that +default). If you ever bring back the original minibuffer text, the +prompt again shows the default. Furthermore, if you change the +variable @code{minibuffer-eldef-shorten-default} to a non-@code{nil} +value, the default argument is displayed as @samp{[@var{default}]} +instead of @samp{(default @var{default})}, saving some screen space. +To enable this minor mode, type @kbd{M-x +minibuffer-electric-default-mode}. + Since the minibuffer appears in the echo area, it can conflict with other uses of the echo area. If an error message or an informative message is emitted while the minibuffer is active, the message hides @@ -38,16 +68,6 @@ the minibuffer for a few seconds, or until you type something; then the minibuffer comes back. While the minibuffer is in use, keystrokes do not echo. -@menu -* Minibuffer File:: Entering file names with the minibuffer. -* Minibuffer Edit:: How to edit in the minibuffer. -* Completion:: An abbreviation facility for minibuffer input. -* Minibuffer History:: Reusing recent minibuffer arguments. -* Repetition:: Re-executing commands that used the minibuffer. -* Passwords:: Entering passwords in the echo area. -* Yes or No Prompts:: Replying yes or no in the echo area. -@end menu - @node Minibuffer File @section Minibuffers for File Names diff --git a/etc/NEWS b/etc/NEWS index ed69ae3fa6..cbbe17cfcc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -127,15 +127,14 @@ autoloads have been redefined as functions). --- *** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the next and previous path separator, respectively. - ++++ *** minibuffer-electric-default-mode can rewrite (default ...) to [...]. Just set minibuffer-eldef-shorten-default to t before enabling the mode. ** ImageMagick support, if available, is automatically enabled. It is no longer necessary to call `imagemagick-register-types' explicitly to install ImageMagick image types; that function is called -automatically at startup, or when customizing a relevant imagemagick- -option. +automatically at startup, or when customizing an imagemagick- option. +++ *** Setting `imagemagick-types-inhibit' to t now disables the use of ImageMagick to view images. You must call imagemagick-register-types diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ff9684ad17..98e47dd83d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-11-07 Chong Yidong + + * minibuf-eldef.el (minibuffer-eldef-shorten-default): Convert to + a defcustom with an appropriate :set function. + (minibuffer-default--in-prompt-regexps): New function. + 2012-11-07 Glenn Morris * emacs-lisp/cl.el (define-setf-expander, defsetf) diff --git a/lisp/minibuf-eldef.el b/lisp/minibuf-eldef.el index 92d5ec821b..950c28b227 100644 --- a/lisp/minibuf-eldef.el +++ b/lisp/minibuf-eldef.el @@ -33,13 +33,25 @@ ;;; Code: -(defvar minibuffer-eldef-shorten-default nil - "If non-nil, shorten \"(default ...)\" to \"[...]\" in minibuffer prompts.") +(defvar minibuffer-eldef-shorten-default) -(defvar minibuffer-default-in-prompt-regexps +(defun minibuffer-default--in-prompt-regexps () `(("\\( (default\\(?: is\\)? \\(.*\\))\\):? \\'" 1 ,(if minibuffer-eldef-shorten-default " [\\2]")) - ("\\( \\[.*\\]\\):? *\\'" 1)) + ("\\( \\[.*\\]\\):? *\\'" 1))) + +(defcustom minibuffer-eldef-shorten-default nil + "If non-nil, shorten \"(default ...)\" to \"[...]\" in minibuffer prompts." + :set (lambda (symbol value) + (set-default symbol value) + (setq-default minibuffer-default-in-prompt-regexps + (minibuffer-default--in-prompt-regexps))) + :type 'boolean + :group 'minibuffer + :version "24.3") + +(defvar minibuffer-default-in-prompt-regexps + (minibuffer-default--in-prompt-regexps) "A list of regexps matching the parts of minibuffer prompts showing defaults. When `minibuffer-electric-default-mode' is active, these regexps are used to identify the portions of prompts to elide.