mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-05 11:45:45 +00:00
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-51
Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 188-189) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 73) - Update from CVS
This commit is contained in:
commit
e6335dc16c
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
||||
2006-04-01 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* configure: Regenerated.
|
||||
|
||||
2006-04-01 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change)
|
||||
|
||||
* configure.in (HAVE_XAW3D): Disable Xaw3d check if
|
||||
--without-toolkit-scroll-bars was specified.
|
||||
|
||||
2006-04-01 Christoph Bauer <Christoph.Bauer@lms-gmbh.de> (tiny change)
|
||||
|
||||
* configure.in (hppa*-hp-hpux1[1-9]*): Add
|
||||
-D_INCLUDE__STDC_A1_SOURCE to CFLAGS. Update Copyright years
|
||||
written to src/config.in.
|
||||
|
||||
2006-03-18 Claudio Fontana <claudio@gnu.org>
|
||||
|
||||
* Makefile.in (INFO_FILES): New variable, contains all Info file names.
|
||||
|
2
INSTALL
2
INSTALL
@ -260,7 +260,7 @@ availability).
|
||||
|
||||
If `--with-x-toolkit=gtk' is specified, you can tell configure where
|
||||
to search for GTK by specifying `--with-pkg-config-prog=PATH' where
|
||||
PATH is the pathname to pkg-config. Note that GTK version 2.0 or
|
||||
PATH is the pathname to pkg-config. Note that GTK version 2.4 or
|
||||
newer is required for Emacs.
|
||||
|
||||
The `--with-gcc' option specifies that the build process should
|
||||
|
3
configure
vendored
3
configure
vendored
@ -2093,6 +2093,7 @@ _ACEOF
|
||||
;;
|
||||
hppa*-hp-hpux1[1-9]* )
|
||||
machine=hp800 opsys=hpux11
|
||||
CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
|
||||
;;
|
||||
|
||||
hppa*-*-linux-gnu* )
|
||||
@ -11412,7 +11413,7 @@ fi
|
||||
### Is -lXaw3d available?
|
||||
HAVE_XAW3D=no
|
||||
if test "${HAVE_X11}" = "yes"; then
|
||||
if test "${USE_X_TOOLKIT}" != "none"; then
|
||||
if test "${USE_X_TOOLKIT}" != "none" && test "${with_toolkit_scroll_bars}" != "no"; then
|
||||
echo "$as_me:$LINENO: checking for X11/Xaw3d/Scrollbar.h" >&5
|
||||
echo $ECHO_N "checking for X11/Xaw3d/Scrollbar.h... $ECHO_C" >&6
|
||||
if test "${ac_cv_header_X11_Xaw3d_Scrollbar_h+set}" = set; then
|
||||
|
@ -611,6 +611,7 @@ dnl see the `changequote' comment above.
|
||||
;;
|
||||
hppa*-hp-hpux1[1-9]* )
|
||||
machine=hp800 opsys=hpux11
|
||||
CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
|
||||
;;
|
||||
|
||||
hppa*-*-linux-gnu* )
|
||||
@ -2179,7 +2180,7 @@ fi
|
||||
### Is -lXaw3d available?
|
||||
HAVE_XAW3D=no
|
||||
if test "${HAVE_X11}" = "yes"; then
|
||||
if test "${USE_X_TOOLKIT}" != "none"; then
|
||||
if test "${USE_X_TOOLKIT}" != "none" && test "${with_toolkit_scroll_bars}" != "no"; then
|
||||
dnl Fixme: determine what Scrollbar.h needs to avoid compilation
|
||||
dnl errors from the test without the `-'.
|
||||
AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h,
|
||||
@ -2840,7 +2841,7 @@ if test "${REL_ALLOC}" = "yes" ; then
|
||||
fi
|
||||
|
||||
AH_TOP([/* GNU Emacs site configuration template file.
|
||||
Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004
|
||||
Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
9
etc/NEWS
9
etc/NEWS
@ -3544,6 +3544,15 @@ the command `undefined'. (In earlier Emacs versions, it used
|
||||
:propertize and :eval forms in the value of a variable whose
|
||||
`risky-local-variable' property is nil.
|
||||
|
||||
---
|
||||
The function `comint-send-input' now accepts 3 optional arguments:
|
||||
|
||||
(comint-send-input &optional no-newline artificial)
|
||||
|
||||
Callers sending input not from the user should use bind the 3rd
|
||||
argument `artificial' to a non-nil value, to prevent Emacs from
|
||||
deleting the part of subprocess output that matches the input.
|
||||
|
||||
---
|
||||
** Support for Mocklisp has been removed.
|
||||
|
||||
|
@ -1,43 +1,71 @@
|
||||
All of the following icons are not part of Emacs, but distributed and
|
||||
used by Emacs.
|
||||
The following icons are from GNOME 2.6:
|
||||
|
||||
* The following icons are from GTK+ 2.x:
|
||||
attach.xpm (stock_attach)
|
||||
connect.xpm (stock_connect)
|
||||
contact.xpm (stock_contact)
|
||||
delete.xpm (stock_delete)
|
||||
describe.xpm (stock_properties)
|
||||
disconnect.xpm (stock_disconnect)
|
||||
exit.xpm (stock_exit)
|
||||
lock-broken.xpm (stock_lock_broken)
|
||||
lock-ok.xpm (stock_lock_ok)
|
||||
lock.xpm (stock_lock)
|
||||
next-page.xpm (stock_next-page)
|
||||
refresh.xpm (stock_refresh)
|
||||
sort-ascending.xpm (stock_sort-ascending)
|
||||
sort-column-ascending.xpm (stock_sort-column-ascending)
|
||||
sort-criteria.xpm (stock_sort-criteria)
|
||||
sort-descending.xpm (stock_sort-descending)
|
||||
sort-row-ascending.xpm (stock_sort-row-ascending)
|
||||
|
||||
close.xpm copy.xpm cut.xpm find-replace.xpm help.xpm home.xpm
|
||||
index.xpm jump-to.xpm left-arrow.xpm new.xpm open.xpm paste.xpm
|
||||
preferences.xpm print.xpm refresh.xpm right-arrow.xpm save.xpm
|
||||
saveas.xpm search.xpm sort-ascending.xpm sort-descending.xpm
|
||||
spell.xpm undo.xpm up-arrow.xpm
|
||||
gnus/toggle-subscription.xpm (stock_task-recurring)
|
||||
|
||||
back-arrow.xpm and fwd-arrow.xpm are slightly modified undo and redo.
|
||||
mail/compose.xpm (stock_mail-compose)
|
||||
mail/copy.xpm (stock_mail-copy)
|
||||
mail/forward.xpm (stock_mail-forward)
|
||||
mail/inbox.xpm (stock_inbox)
|
||||
mail/move.xpm (stock_mail-move)
|
||||
mail/not-spam.xpm (stock_not-spam)
|
||||
mail/outbox.xpm (stock_outbox)
|
||||
mail/reply-all.xpm (stock_mail-reply-to-all)
|
||||
mail/reply.xpm (stock_mail-reply)
|
||||
mail/save-draft.xpm (stock_mail-handling)
|
||||
mail/send.xpm (stock_mail-send)
|
||||
mail/spam.xpm (stock_spam)
|
||||
|
||||
diropen.xpm is file-manager.png from Gnome hicolor theme.
|
||||
|
||||
* The following icons are from GNOME 2.x:
|
||||
The following icons were contributed by Adam Sjøgren <asjo@koldfront.dk>:
|
||||
|
||||
attach.xpm connect.xpm contact.xpm data-save.xpm delete.xpm
|
||||
describe.xpm disconnect.xpm exit.xpm gnus/toggle-subscription.xpm
|
||||
lock-broken.xpm lock-ok.xpm lock.xpm mail/compose.xpm
|
||||
mail/copy.xpm mail/flag-for-followup.xpm mail/forward.xpm
|
||||
mail/inbox.xpm mail/move.xpm mail/not-spam.xpm mail/outbox.xpm
|
||||
mail/preview.xpm mail/reply-all.xpm mail/reply.xpm
|
||||
mail/save-draft.xpm mail/save.xpm mail/send.xpm mail/spam.xpm
|
||||
next-page.xpm refresh.xpm separator.xpm sort-ascending.xpm
|
||||
sort-column-ascending.xpm sort-criteria.xpm sort-descending.xpm
|
||||
sort-row-ascending.xpm zoom-in.xpm zoom-out.xpm
|
||||
mail/preview.xpm (combining stock_mail and stock_zoom)
|
||||
mail/save.xpm (combining stock_mail, stock_save and stock_convert)
|
||||
|
||||
* Note that the default GTK icons were not overridden by the GNOME theme
|
||||
due to a bug which was fixed in GNOME 2.15. Once GNOME 2.16 is in wide
|
||||
circulation, then the GTK icons should be replaced with the equivalent
|
||||
GNOME icons.
|
||||
|
||||
* Recipe for Creating PBM Versions
|
||||
The folling icon are duplicated from Emacs 22. They are either not present in
|
||||
Emacs 21 or look different there.
|
||||
|
||||
1. Edit .xpm image in GIMP.
|
||||
2. Image > Mode > Indexed. Check Use Black/White Palette and No
|
||||
Color Dithering.
|
||||
3. File > Save As file.xbm.
|
||||
4. Run xbmtopbm < file.xbm > file.pbm.
|
||||
cancel.xpm
|
||||
copy.xpm
|
||||
diropen.xpm
|
||||
help.xpm
|
||||
left-arrow.xpm
|
||||
paste.xpm
|
||||
print.xpm
|
||||
redo.xpm
|
||||
right-arrow.xpm
|
||||
save.xpm
|
||||
search.xpm
|
||||
separator.xpm
|
||||
|
||||
Thanks to jan.h.d@swipnet.se for the help.
|
||||
The GNOME's stock_*.png files were converted to XPM using the following GIMP
|
||||
script:
|
||||
|
||||
;; -*- scheme -*-
|
||||
;; Put this file in ~/.gimp-*/scripts/
|
||||
;; gimp -i -b '(rs-save-as-xpm "foo.png" "foo.xpm" 127)' '(gimp-quit 0)'
|
||||
(define (rs-save-as-xpm filename filename2 threshold)
|
||||
(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
|
||||
(drawable (car (gimp-image-get-active-layer image))))
|
||||
(file-xpm-save RUN-NONINTERACTIVE image drawable
|
||||
filename2 filename2 threshold)
|
||||
(gimp-image-delete image)))
|
||||
;; end
|
||||
|
69
etc/images/redo.xpm
Normal file
69
etc/images/redo.xpm
Normal file
@ -0,0 +1,69 @@
|
||||
/* XPM */
|
||||
static char * stock_redo_xpm[] = {
|
||||
"24 24 42 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #939A8D",
|
||||
"@ c #BAD09D",
|
||||
"# c #92998C",
|
||||
"$ c #818F71",
|
||||
"% c #ADBDA0",
|
||||
"& c #C2D5AA",
|
||||
"* c #D1DFBE",
|
||||
"= c #BED2A3",
|
||||
"- c #99A28F",
|
||||
"; c #A8BCA6",
|
||||
"> c #D5E1C6",
|
||||
", c #CDDCBC",
|
||||
"' c #D2E0BF",
|
||||
") c #C5D7AE",
|
||||
"! c #919889",
|
||||
"~ c #8C9A7F",
|
||||
"{ c #D4E0C5",
|
||||
"] c #D3E0C1",
|
||||
"^ c #BFD3A6",
|
||||
"/ c #9BAA87",
|
||||
"( c #B5C3A9",
|
||||
"_ c #92AD62",
|
||||
": c #7C9B40",
|
||||
"< c #59702D",
|
||||
"[ c #7F8E6B",
|
||||
"} c #C8D9B2",
|
||||
"| c #85A24D",
|
||||
"1 c #53692A",
|
||||
"2 c #A4B690",
|
||||
"3 c #9BB572",
|
||||
"4 c #6D8839",
|
||||
"5 c #95A77E",
|
||||
"6 c #8BA859",
|
||||
"7 c #657255",
|
||||
"8 c #98AF74",
|
||||
"9 c #AFC394",
|
||||
"0 c #6D7A5B",
|
||||
"a c #9CAF84",
|
||||
"b c #748261",
|
||||
"c c #879772",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" . ",
|
||||
" .. ",
|
||||
" .+. ",
|
||||
" ....@#. ",
|
||||
" .$%&*=@-. ",
|
||||
" .;>,')@@@!. ",
|
||||
" .~{]*^@@@@@/. ",
|
||||
" .(>_::::::<. ",
|
||||
" .[}|::::::1. ",
|
||||
" .23:<...:1. ",
|
||||
" .@:4. .<. ",
|
||||
" .@:.. .. ",
|
||||
" .56. . ",
|
||||
" .78. ",
|
||||
" .9. ",
|
||||
" .0a. ",
|
||||
" .bc. ",
|
||||
" ... ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
@ -1,3 +1,3 @@
|
||||
This directory contains the source code for the architecture-dependent
|
||||
files that go in ${archlibdir}. At present, these are mostly utility
|
||||
programs used by Emacs.
|
||||
programs used by GNU Emacs.
|
||||
|
@ -1,3 +1,40 @@
|
||||
2006-04-02 Drew Adams <drew.adams@oracle.com> (tiny change)
|
||||
|
||||
* speedbar.el (speedbar-after-create-hook): Doc fix.
|
||||
|
||||
2006-04-02 Michael Ernst <mernst@alum.mit.edu>
|
||||
|
||||
* shell.el (shell-directory-tracker)
|
||||
(shell-dynamic-complete-command): Doc fixes.
|
||||
|
||||
2006-04-01 Matt Hodges <MPHodges@member.fsf.org>
|
||||
|
||||
* pcomplete.el (pcomplete-show-completions): Recognize TAB on text
|
||||
terminals.
|
||||
|
||||
2006-04-01 Kim F. Storm <storm@cua.dk>
|
||||
|
||||
* ido.el (ido-unc-hosts-cache): New defvar.
|
||||
(ido-unc-hosts): If value of defcustom is a function, call it to
|
||||
get list of UNC hosts. Add function-item choices to specify
|
||||
ido-unc-hosts-net-view or user function.
|
||||
(ido-ignore-unc-host-regexps): New defcustom.
|
||||
(ido-unc-hosts-net-view, ido-unc-hosts): New functions.
|
||||
(ido-is-unc-root, ido-is-unc-host, ido-file-name-all-completions)
|
||||
(ido-exhibit): Call ido-unc-hosts to get list of UNC hosts.
|
||||
|
||||
2006-03-13 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* pcvs-util.el (cvs-insert-strings): Fix bug with strings longer than
|
||||
wwidth.
|
||||
|
||||
2006-03-31 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* ido.el (ido-cache-unc-host-shares-time, ido-report-no-match)
|
||||
(ido-max-work-file-list, ido-switch-buffer)
|
||||
(ido-read-file-name-as-directory-commands):
|
||||
Fix typos in docstrings.
|
||||
|
||||
2006-03-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* term/mac-win.el (mac-system-coding-system): Define and use after
|
||||
@ -433,11 +470,6 @@
|
||||
* tree-widget.el (tree-widget-themes-load-path)
|
||||
(tree-widget-themes-directory, tree-widget-theme): Doc fix.
|
||||
|
||||
2006-03-13 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* pcvs-util.el (cvs-insert-strings): Fix bug with strings longer than
|
||||
wwidth.
|
||||
|
||||
2006-03-13 Ryan Yeske <rcyeske@gmail.com>
|
||||
|
||||
* net/rcirc.el (rcirc) <defgroup>: Add link to manual.
|
||||
@ -15172,7 +15204,7 @@
|
||||
* add-log.el (change-log-font-lock-keywords): Make the regexp for
|
||||
date lines stricter.
|
||||
|
||||
2005-06-10 Zhang Wei <id.brep@gmail.com> (tiny change)
|
||||
2005-06-10 Zhang Wei <id.brep@gmail.com>
|
||||
|
||||
* term/x-win.el (x-clipboard-yank): Use x-selection-value instead
|
||||
of x-get-selection.
|
||||
|
@ -197,7 +197,7 @@
|
||||
|
||||
* erc.el (erc-version-string): Release ERC 5.1.1.
|
||||
|
||||
2006-02-03 Zhang Wei <id.brep@gmail.com> (tiny change)
|
||||
2006-02-03 Zhang Wei <id.brep@gmail.com>
|
||||
|
||||
* erc.el (erc-version-string): Don't hard-code Emacs version.
|
||||
(erc-version): Use emacs-version.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2006-03-31 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus-group.el (gnus-group-update-tool-bar): Add :initialize and
|
||||
:set.
|
||||
|
||||
2006-03-23 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* mml.el (mml-insert-mime): Ignore cached contents of
|
||||
|
@ -1389,6 +1389,13 @@ if it is a string, only list groups matching REGEXP."
|
||||
"Force updating the group buffer tool bar."
|
||||
:group 'gnus-group
|
||||
:version "22.1"
|
||||
:initialize 'custom-initialize-default
|
||||
:set (lambda (symbol value)
|
||||
(set-default symbol value)
|
||||
(when (gnus-alive-p)
|
||||
(with-current-buffer gnus-group-buffer
|
||||
;; FIXME: Is there a better way to redraw the group buffer?
|
||||
(gnus-group-get-new-news 0))))
|
||||
:type 'boolean)
|
||||
|
||||
(defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level
|
||||
|
85
lisp/ido.el
85
lisp/ido.el
@ -630,22 +630,41 @@ equivalent function, e.g. `find-file' rather than `ido-find-file'."
|
||||
:type '(repeat regexp)
|
||||
:group 'ido)
|
||||
|
||||
(defvar ido-unc-hosts-cache t
|
||||
"Cached value from ido-unc-hosts function.")
|
||||
|
||||
(defcustom ido-unc-hosts nil
|
||||
"*List of known UNC host names to complete after initial //."
|
||||
:type '(repeat string)
|
||||
"*List of known UNC host names to complete after initial //.
|
||||
If value is a function, that function is called to search network for
|
||||
hosts on first use of UNC path."
|
||||
:type '(choice (repeat :tag "List of UNC host names" string)
|
||||
(function-item :tag "Use `NET VIEW'"
|
||||
:value ido-unc-hosts-net-view)
|
||||
(function :tag "Your own function"))
|
||||
:set #'(lambda (symbol value)
|
||||
(set symbol value)
|
||||
(setq ido-unc-hosts-cache t))
|
||||
:group 'ido)
|
||||
|
||||
(defcustom ido-ignore-unc-host-regexps nil
|
||||
"*List of regexps matching UNC hosts to ignore."
|
||||
:type '(repeat regexp)
|
||||
:set #'(lambda (symbol value)
|
||||
(set symbol value)
|
||||
(setq ido-unc-hosts-cache t))
|
||||
:group 'ido)
|
||||
|
||||
(defcustom ido-cache-unc-host-shares-time 8.0
|
||||
"*Maximum time to cache shares of an UNC host (in hours).
|
||||
Use C-l in prompt to refresh list.
|
||||
If zero, unc host shares are not cached."
|
||||
If zero, UNC host shares are not cached."
|
||||
:type 'number
|
||||
:group 'ido)
|
||||
|
||||
(defcustom ido-max-work-file-list 10
|
||||
"*Maximum number of names of recently opened files to record.
|
||||
This is the list the file names (sans directory) which have most recently
|
||||
been opened. See `ido-work-file-list' and `ido-save-directory-list-file'."
|
||||
been opened. See `ido-work-file-list' and `ido-save-directory-list-file'."
|
||||
:type 'integer
|
||||
:group 'ido)
|
||||
|
||||
@ -891,7 +910,7 @@ Must be set before enabling ido mode."
|
||||
:group 'ido)
|
||||
|
||||
(defcustom ido-read-file-name-as-directory-commands '()
|
||||
"List of commands which uses read-file-name to read a directory name.
|
||||
"List of commands which uses `read-file-name' to read a directory name.
|
||||
When `ido-everywhere' is non-nil, the commands in this list will read
|
||||
the directory using `ido-read-directory-name'."
|
||||
:type '(repeat symbol)
|
||||
@ -988,7 +1007,7 @@ Copied from `icomplete-eoinput'.")
|
||||
"List of files currently matching `ido-text'.")
|
||||
|
||||
(defvar ido-report-no-match t
|
||||
"Report [No Match] when no completions matches ido-text.")
|
||||
"Report [No Match] when no completions matches `ido-text'.")
|
||||
|
||||
(defvar ido-exit nil
|
||||
"Flag to monitor how `ido-find-file' exits.
|
||||
@ -1111,18 +1130,58 @@ it doesn't interfere with other minibuffer usage.")
|
||||
(pop-to-buffer b t t)
|
||||
(setq truncate-lines t)))))
|
||||
|
||||
(defun ido-unc-hosts (&optional query)
|
||||
"Return list of UNC host names."
|
||||
(cond
|
||||
((listp ido-unc-hosts)
|
||||
ido-unc-hosts) ;; static list or nil
|
||||
((listp ido-unc-hosts-cache)
|
||||
ido-unc-hosts-cache) ;; result of net search
|
||||
((and query (fboundp ido-unc-hosts))
|
||||
(message "Searching for UNC hosts...")
|
||||
(let ((hosts (funcall ido-unc-hosts)) host re-list re)
|
||||
(setq ido-unc-hosts-cache nil)
|
||||
(while hosts
|
||||
(setq host (downcase (car hosts))
|
||||
hosts (cdr hosts)
|
||||
re-list ido-ignore-unc-host-regexps)
|
||||
(while re-list
|
||||
(setq re (car re-list)
|
||||
re-list (cdr re-list))
|
||||
(if (string-match re host)
|
||||
(setq re-list nil
|
||||
host nil)))
|
||||
(if host
|
||||
(setq ido-unc-hosts-cache (cons host ido-unc-hosts-cache)))))
|
||||
(message nil)
|
||||
(setq ido-unc-hosts-cache
|
||||
(sort ido-unc-hosts-cache #'string<)))
|
||||
(query
|
||||
(setq ido-unc-hosts-cache nil))
|
||||
(t (fboundp ido-unc-hosts))))
|
||||
|
||||
(defun ido-unc-hosts-net-view ()
|
||||
"Query network for list of UNC host names using `NET VIEW'."
|
||||
(let (hosts)
|
||||
(with-temp-buffer
|
||||
(shell-command "net view" t)
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward "^\\\\\\\\\\([[:graph:]]+\\)" nil t)
|
||||
(setq hosts (cons (match-string 1) hosts))))
|
||||
hosts))
|
||||
|
||||
(defun ido-is-tramp-root (&optional dir)
|
||||
(and ido-enable-tramp-completion
|
||||
(string-match "\\`/[^/]+[@:]\\'"
|
||||
(or dir ido-current-directory))))
|
||||
|
||||
(defun ido-is-unc-root (&optional dir)
|
||||
(and ido-unc-hosts
|
||||
(and (ido-unc-hosts)
|
||||
(string-equal "//"
|
||||
(or dir ido-current-directory))))
|
||||
|
||||
(defun ido-is-unc-host (&optional dir)
|
||||
(and ido-unc-hosts
|
||||
(and (ido-unc-hosts)
|
||||
(string-match "\\`//[^/]+/\\'"
|
||||
(or dir ido-current-directory))))
|
||||
|
||||
@ -1699,7 +1758,7 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise."
|
||||
;; the relevant function is called (find-file, write-file, etc).
|
||||
|
||||
(defun ido-read-internal (item prompt history &optional default require-match initial)
|
||||
"Perform the ido-read-buffer and ido-read-file-name functions.
|
||||
"Perform the `ido-read-buffer' and `ido-read-file-name' functions.
|
||||
Return the name of a buffer or file selected.
|
||||
PROMPT is the prompt to give to the user.
|
||||
DEFAULT if given is the default directory to start with.
|
||||
@ -3238,7 +3297,7 @@ for first matching file."
|
||||
(mapcar
|
||||
(lambda (host)
|
||||
(if (string-match "/\\'" host) host (concat host "/")))
|
||||
ido-unc-hosts))
|
||||
(ido-unc-hosts t)))
|
||||
((and (numberp ido-max-dir-file-cache) (> ido-max-dir-file-cache 0)
|
||||
(stringp dir) (> (length dir) 0)
|
||||
(ido-may-cache-directory dir))
|
||||
@ -3734,7 +3793,7 @@ default is to show it in the same window, unless it is already visible
|
||||
in another frame.
|
||||
|
||||
As you type in a string, all of the buffers matching the string are
|
||||
displayed if substring-matching is used \(default). Look at
|
||||
displayed if substring-matching is used \(default). Look at
|
||||
`ido-enable-prefix' and `ido-toggle-prefix'. When you have found the
|
||||
buffer you want, it can then be selected. As you type, most keys have
|
||||
their normal keybindings, except for the following: \\<ido-buffer-completion-map>
|
||||
@ -3757,7 +3816,7 @@ in a separate window.
|
||||
\\[ido-toggle-prefix] Toggle between substring and prefix matching.
|
||||
\\[ido-toggle-case] Toggle case-sensitive searching of buffer names.
|
||||
\\[ido-completion-help] Show list of matching buffers in separate window.
|
||||
\\[ido-enter-find-file] Drop into ido-find-file.
|
||||
\\[ido-enter-find-file] Drop into `ido-find-file'.
|
||||
\\[ido-kill-buffer-at-head] Kill buffer at head of buffer list.
|
||||
\\[ido-toggle-ignore] Toggle ignoring buffers listed in `ido-ignore-buffers'."
|
||||
(interactive)
|
||||
@ -4026,7 +4085,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
|
||||
((and (ido-is-tramp-root) (string-equal contents "/"))
|
||||
(ido-set-current-directory ido-current-directory contents)
|
||||
(setq refresh t))
|
||||
((and ido-unc-hosts (string-equal contents "/")
|
||||
((and (ido-unc-hosts) (string-equal contents "/")
|
||||
(let ((ido-enable-tramp-completion nil))
|
||||
(ido-is-root-directory)))
|
||||
(ido-set-current-directory "//")
|
||||
|
@ -1,3 +1,10 @@
|
||||
2006-03-31 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (mh-strip-package-version): Move before use to avoid
|
||||
compiler error. Make macro, also to avoid compiler error.
|
||||
(mh-defface-compat): Incorporate body into mh-face-data and
|
||||
delete.
|
||||
|
||||
2006-03-30 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (mh-defcustom, mh-defface, mh-defgroup): Macros to
|
||||
|
@ -895,6 +895,19 @@ necessary and can actually cause problems."
|
||||
|
||||
;; Temporary function and data structure used customization.
|
||||
;; These will be unbound after the options are defined.
|
||||
(defmacro mh-strip-package-version (args)
|
||||
"Strip :package-version keyword and its value from ARGS.
|
||||
In Emacs versions that support the :package-version keyword,
|
||||
ARGS is returned unchanged."
|
||||
`(if (boundp 'customize-package-emacs-version-alist)
|
||||
,args
|
||||
(let (seen)
|
||||
(loop for keyword in ,args
|
||||
if (cond ((eq keyword ':package-version) (setq seen t) nil)
|
||||
(seen (setq seen nil) nil)
|
||||
(t t))
|
||||
collect keyword))))
|
||||
|
||||
(defmacro mh-defgroup (symbol members doc &rest args)
|
||||
"Declare SYMBOL as a customization group containing MEMBERS.
|
||||
See documentation for `defgroup' for a description of the arguments
|
||||
@ -925,19 +938,6 @@ keyword, introduced in Emacs 22."
|
||||
`(defface ,face ,spec ,doc ,@(mh-strip-package-version args)))
|
||||
(put 'mh-defface 'lisp-indent-function 'defun)
|
||||
|
||||
(defun mh-strip-package-version (args)
|
||||
"Strip :package-version keyword and its value from ARGS.
|
||||
In Emacs versions that support the :package-version keyword,
|
||||
ARGS is returned unchanged."
|
||||
(if (boundp 'customize-package-emacs-version-alist)
|
||||
args
|
||||
(let (seen)
|
||||
(loop for keyword in args
|
||||
if (cond ((eq keyword ':package-version) (setq seen t) nil)
|
||||
(seen (setq seen nil) nil)
|
||||
(t t))
|
||||
collect keyword))))
|
||||
|
||||
|
||||
|
||||
;;; MH-E Customization
|
||||
@ -3115,46 +3115,12 @@ sequence."
|
||||
(if (boundp 'facemenu-unlisted-faces)
|
||||
(add-to-list 'facemenu-unlisted-faces "^mh-"))
|
||||
|
||||
;; Temporary function and data structure used for defining faces.
|
||||
;; These will be unbound after the faces are defined.
|
||||
(defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag)
|
||||
(>= emacs-major-version 22))
|
||||
"Non-nil means `defface' supports min-colors display requirement.")
|
||||
|
||||
(defun mh-defface-compat (spec)
|
||||
"Convert SPEC for defface if necessary to run on older platforms.
|
||||
Modifies SPEC in place and returns it. See `defface' for the spec definition.
|
||||
|
||||
When `mh-min-colors-defined-flag' is nil, this function finds
|
||||
display entries with \"min-colors\" requirements and either
|
||||
removes the \"min-colors\" requirement or strips the display
|
||||
entirely if the display does not support the number of specified
|
||||
colors."
|
||||
(if mh-min-colors-defined-flag
|
||||
spec
|
||||
(let ((cells (mh-display-color-cells))
|
||||
new-spec)
|
||||
;; Remove entries with min-colors, or delete them if we have fewer colors
|
||||
;; than they specify.
|
||||
(loop for entry in (reverse spec) do
|
||||
(let ((requirement (if (eq (car entry) t)
|
||||
nil
|
||||
(assoc 'min-colors (car entry)))))
|
||||
(if requirement
|
||||
(when (>= cells (nth 1 requirement))
|
||||
(setq new-spec (cons (cons (delq requirement (car entry))
|
||||
(cdr entry))
|
||||
new-spec)))
|
||||
(setq new-spec (cons entry new-spec)))))
|
||||
new-spec)))
|
||||
|
||||
(require 'cus-face)
|
||||
|
||||
(defvar mh-inherit-face-flag (assq :inherit custom-face-attributes)
|
||||
"Non-nil means that the `defface' :inherit keyword is available.
|
||||
The :inherit keyword is available on all supported versions of
|
||||
GNU Emacs and XEmacs from at least 21.5.23 on.")
|
||||
|
||||
;; To add a new face:
|
||||
;; 1. Add entry to variable mh-face-data.
|
||||
;; 2. Create face using mh-defface (which removes min-color spec and
|
||||
;; :package-version keyword where these are not supported),
|
||||
;; accessing face data with function mh-face-data.
|
||||
;; 3. Add inherit argument to function mh-face-data if applicable.
|
||||
(defvar mh-face-data
|
||||
'((mh-folder-followup
|
||||
((((class color) (background light))
|
||||
@ -3297,19 +3263,61 @@ GNU Emacs and XEmacs from at least 21.5.23 on.")
|
||||
(((class color) (background dark))
|
||||
(:foreground "red1" :underline t))
|
||||
(t
|
||||
(:underline t))))))
|
||||
(:underline t)))))
|
||||
"MH-E face data.
|
||||
Used by function `mh-face-data' which returns spec that is
|
||||
consumed by `mh-defface'.")
|
||||
|
||||
(require 'cus-face)
|
||||
|
||||
(defvar mh-inherit-face-flag (assq :inherit custom-face-attributes)
|
||||
"Non-nil means that the `defface' :inherit keyword is available.
|
||||
The :inherit keyword is available on all supported versions of
|
||||
GNU Emacs and XEmacs from at least 21.5.23 on.")
|
||||
|
||||
(defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag)
|
||||
(>= emacs-major-version 22))
|
||||
"Non-nil means `defface' supports min-colors display requirement.")
|
||||
|
||||
(defun mh-face-data (face &optional inherit)
|
||||
"Return spec for FACE.
|
||||
If INHERIT is non-nil and `defface' supports the :inherit
|
||||
keyword, return INHERIT literally; otherwise, return spec for FACE.
|
||||
See `defface' for the spec definition.
|
||||
|
||||
This isn't a perfect implementation. In the case that
|
||||
the :inherit keyword is not supported, any additional attributes
|
||||
in the inherit parameter are not added to the returned spec."
|
||||
(if (and inherit mh-inherit-face-flag)
|
||||
inherit
|
||||
(mh-defface-compat (cadr (assoc face mh-face-data)))))
|
||||
If INHERIT is non-nil and `defface' supports the :inherit
|
||||
keyword, return INHERIT literally; otherwise, return spec for
|
||||
FACE from the variable `mh-face-data'. This isn't a perfect
|
||||
implementation. In the case that the :inherit keyword is not
|
||||
supported, any additional attributes in the inherit parameter are
|
||||
not added to the returned spec.
|
||||
|
||||
Furthermore, when `mh-min-colors-defined-flag' is nil, this
|
||||
function finds display entries with \"min-colors\" requirements
|
||||
and either removes the \"min-colors\" requirement or strips the
|
||||
display entirely if the display does not support the number of
|
||||
specified colors."
|
||||
(let ((spec
|
||||
(if (and inherit mh-inherit-face-flag)
|
||||
inherit
|
||||
(or (cadr (assq face mh-face-data))
|
||||
(error "Could not find %s in mh-face-data" face)))))
|
||||
|
||||
(if mh-min-colors-defined-flag
|
||||
spec
|
||||
(let ((cells (mh-display-color-cells))
|
||||
new-spec)
|
||||
;; Remove entries with min-colors, or delete them if we have
|
||||
;; fewer colors than they specify.
|
||||
(loop for entry in (reverse spec) do
|
||||
(let ((requirement (if (eq (car entry) t)
|
||||
nil
|
||||
(assq 'min-colors (car entry)))))
|
||||
(if requirement
|
||||
(when (>= cells (nth 1 requirement))
|
||||
(setq new-spec (cons (cons (delq requirement (car entry))
|
||||
(cdr entry))
|
||||
new-spec)))
|
||||
(setq new-spec (cons entry new-spec)))))
|
||||
new-spec))))
|
||||
|
||||
(mh-defface mh-folder-address
|
||||
(mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject))))
|
||||
@ -3520,9 +3528,9 @@ The background and foreground are used in the image."
|
||||
;; Get rid of temporary functions and data structures.
|
||||
(fmakunbound 'mh-defcustom)
|
||||
(fmakunbound 'mh-defface)
|
||||
(fmakunbound 'mh-defface-compat)
|
||||
(fmakunbound 'mh-defgroup)
|
||||
(fmakunbound 'mh-face-data)
|
||||
(fmakunbound 'mh-strip-package-version)
|
||||
(makunbound 'mh-face-data)
|
||||
(makunbound 'mh-inherit-face-flag)
|
||||
(makunbound 'mh-min-colors-defined-flag)
|
||||
|
@ -978,7 +978,9 @@ Typing SPC flushes the help buffer."
|
||||
(set-window-configuration pcomplete-last-window-config)
|
||||
(setq pcomplete-last-window-config nil)
|
||||
(throw 'done nil))
|
||||
((event-matches-key-specifier-p event 'tab)
|
||||
((or (event-matches-key-specifier-p event 'tab)
|
||||
;; Needed on a terminal
|
||||
(event-matches-key-specifier-p event 9))
|
||||
(save-selected-window
|
||||
(select-window (get-buffer-window "*Completions*"))
|
||||
(if (pos-visible-in-window-p (point-max))
|
||||
|
@ -157,10 +157,11 @@ Uses columns to keep the listing readable but compact."
|
||||
(setq tab-width colwidth)
|
||||
;; The insertion should be "sensible" no matter what choices were made.
|
||||
(dolist (str strings)
|
||||
(unless (bolp) (insert " \t"))
|
||||
(when (< wwidth (+ (max colwidth (length str)) (current-column)))
|
||||
(delete-char -2) (insert "\n"))
|
||||
(insert str)))))
|
||||
(unless (bolp)
|
||||
(insert " \t")
|
||||
(when (< wwidth (+ (max colwidth (length str)) (current-column)))
|
||||
(delete-char -2) (insert "\n")))
|
||||
(insert str)))))
|
||||
|
||||
|
||||
(defun cvs-file-to-string (file &optional oneline args)
|
||||
@ -357,7 +358,8 @@ If ARG is nil toggle the PREFIX's value between its 0th default and nil
|
||||
and reset the persistence."
|
||||
(let* ((prefix (symbol-value (cvs-prefix-sym sym)))
|
||||
(numarg (if (integerp arg) arg 0))
|
||||
(defs (cvs-flags-defaults prefix)))
|
||||
;; (defs (cvs-flags-defaults prefix))
|
||||
)
|
||||
|
||||
;; set persistence if requested
|
||||
(when (> (prefix-numeric-value arg) 9)
|
||||
|
@ -574,7 +574,7 @@ Otherwise, one argument `-i' is passed to the shell.
|
||||
;;; 2. It cannot infallibly deal with command sequences, though it does well
|
||||
;;; with these and with ignoring commands forked in another shell with ()s.
|
||||
;;; 3. More generally, any complex command is going to throw it. Otherwise,
|
||||
;;; you'd have to build an entire shell interpreter in emacs lisp. Failing
|
||||
;;; you'd have to build an entire shell interpreter in Emacs Lisp. Failing
|
||||
;;; that, there's no way to catch shell commands where cd's are buried
|
||||
;;; inside conditional expressions, aliases, and so forth.
|
||||
;;;
|
||||
@ -608,7 +608,7 @@ It watches for cd, pushd and popd commands and sets the buffer's
|
||||
default directory to track these commands.
|
||||
|
||||
You may toggle this tracking on and off with M-x dirtrack-mode.
|
||||
If emacs gets confused, you can resync with the shell with M-x dirs.
|
||||
If Emacs gets confused, you can resync with the shell with M-x dirs.
|
||||
|
||||
See variables `shell-cd-regexp', `shell-chdrive-regexp', `shell-pushd-regexp',
|
||||
and `shell-popd-regexp', while `shell-pushd-tohome', `shell-pushd-dextract',
|
||||
@ -929,7 +929,7 @@ See `shell-command-regexp'."
|
||||
(defun shell-dynamic-complete-command ()
|
||||
"Dynamically complete the command at point.
|
||||
This function is similar to `comint-dynamic-complete-filename', except that it
|
||||
searches `exec-path' (minus the trailing emacs library path) for completion
|
||||
searches `exec-path' (minus the trailing Emacs library path) for completion
|
||||
candidates. Note that this may not be the same as the shell's idea of the
|
||||
path.
|
||||
|
||||
|
@ -503,7 +503,7 @@ hierarchy would be replaced with the new directory."
|
||||
:type 'hook)
|
||||
|
||||
(defcustom speedbar-after-create-hook '(speedbar-frame-reposition-smartly)
|
||||
"*Hooks called before popping up the speedbar frame."
|
||||
"*Hooks called after popping up the speedbar frame."
|
||||
:group 'speedbar
|
||||
:type 'hook)
|
||||
|
||||
|
@ -1,3 +1,36 @@
|
||||
2006-03-31 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* gnus.texi (Virtual Groups): `nnvirtual-always-rescan' defaults
|
||||
to t, not nil (and has for the past eight years).
|
||||
|
||||
2006-03-31 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* emacs.texi (Top): Update subnode menu.
|
||||
|
||||
* help.texi (Help Mode): Cleanup.
|
||||
|
||||
* dired.texi: Many cleanups.
|
||||
(Dired Deletion): Describe dired-recursive-deletes.
|
||||
(Operating on Files): dired-create-directory moved.
|
||||
(Misc Dired Features): Moved to here.
|
||||
(Tumme): Node moved to misc.texi.
|
||||
|
||||
* custom.texi: Many cleanups.
|
||||
(Minor Modes): Don't mention ISO Accents Mode.
|
||||
(Examining): Update C-h v output example.
|
||||
(Hooks): Add index and xref for add-hook.
|
||||
(Locals): Delete list of vars that are always per-buffer. Rearrange.
|
||||
(Local Keymaps): Don't mention lisp-mode-map, c-mode-map.
|
||||
|
||||
* misc.texi: Many cleanups.
|
||||
(beginning): Add to summary of topics.
|
||||
(Shell): Put eshell xref at the end. Remove eshell from table.
|
||||
(Thumbnails): New node.
|
||||
|
||||
2006-03-31 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* message.texi, gnus.texi: Bump version to 5.11.
|
||||
|
||||
2006-03-29 Reiner Steib <Reiner.Steib@gmx.de>
|
||||
|
||||
* gnus.texi (Top): Add comment about version line.
|
||||
@ -131,6 +164,10 @@
|
||||
|
||||
* org.texi (Clean view): Document new startup options.
|
||||
|
||||
2006-03-12 Richard Stallman <rms@gnu.org>
|
||||
|
||||
* calendar.texi: Various cleanups.
|
||||
|
||||
2006-03-11 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.texi (Preface, More About MH-E, Options, HTML, Folders)
|
||||
|
325
man/custom.texi
325
man/custom.texi
@ -7,7 +7,7 @@
|
||||
@cindex customization
|
||||
|
||||
This chapter talks about various topics relevant to adapting the
|
||||
behavior of Emacs in minor ways.
|
||||
behavior of Emacs in ways we have anticipated.
|
||||
@iftex
|
||||
See @cite{The Emacs Lisp Reference Manual}
|
||||
@end iftex
|
||||
@ -15,14 +15,14 @@ See @cite{The Emacs Lisp Reference Manual}
|
||||
@xref{Top, Emacs Lisp, Emacs Lisp, elisp, The Emacs Lisp
|
||||
Reference Manual},
|
||||
@end ifnottex
|
||||
for how to make more far-reaching changes. @xref{X Resources},
|
||||
for information on using X resources to customize Emacs.
|
||||
for how to make more far-reaching and open-ended changes. @xref{X
|
||||
Resources}, for information on using X resources to customize Emacs.
|
||||
|
||||
Customization that you do within Emacs normally affects only the
|
||||
particular Emacs session that you do it in---it does not persist
|
||||
between sessions unless you save the customization in a file such as
|
||||
@file{.emacs} or @file{.Xdefaults} that will affect future sessions.
|
||||
@xref{Init File}. In the customization buffer, when you save
|
||||
your init file (@file{.emacs}) that will affect future sessions.
|
||||
(@xref{Init File}.) When you tell the customization buffer to save
|
||||
customizations for future sessions, this actually works by editing
|
||||
@file{.emacs} for you.
|
||||
|
||||
@ -55,17 +55,19 @@ replay sequences of keys.
|
||||
example, Auto Fill mode is a minor mode in which @key{SPC} breaks lines
|
||||
between words as you type. All the minor modes are independent of each
|
||||
other and of the selected major mode. Most minor modes say in the mode
|
||||
line when they are on; for example, @samp{Fill} in the mode line means
|
||||
that Auto Fill mode is on.
|
||||
line when they are enabled; for example, @samp{Fill} in the mode line means
|
||||
that Auto Fill mode is enabled.
|
||||
|
||||
Append @code{-mode} to the name of a minor mode to get the name of a
|
||||
command that turns the mode on or off. Thus, the command to
|
||||
enable or disable Auto Fill mode is called @code{auto-fill-mode}. These
|
||||
commands are usually invoked with @kbd{M-x}, but you can bind keys to them
|
||||
if you wish. With no argument, the function turns the mode on if it was
|
||||
off and off if it was on. This is known as @dfn{toggling}. A positive
|
||||
argument always turns the mode on, and an explicit zero argument or a
|
||||
negative argument always turns it off.
|
||||
You should append @code{-mode} to the name of a minor mode to
|
||||
produce the name of the command that turns the mode on or off. Thus,
|
||||
the command to enable or disable Auto Fill mode is called
|
||||
@code{auto-fill-mode}. These commands are usually invoked with
|
||||
@kbd{M-x}, but you can bind keys to them if you wish.
|
||||
|
||||
With no argument, the minor mode function turns the mode on if it
|
||||
was off, and off if it was on. This is known as @dfn{toggling}. A
|
||||
positive argument always turns the mode on, and an explicit zero
|
||||
argument or a negative argument always turns it off.
|
||||
|
||||
Some minor modes are global: while enabled, they affect everything
|
||||
you do in the Emacs session, in all buffers. Other minor modes are
|
||||
@ -94,8 +96,8 @@ a matter of user preference---other users editing the same file might
|
||||
not want the same minor modes you prefer.
|
||||
|
||||
The most useful buffer-local minor modes include Abbrev mode, Auto
|
||||
Fill mode, Auto Save mode, Font-Lock mode, Glasses mode, ISO Accents
|
||||
mode, Outline minor mode, Overwrite mode, and Binary Overwrite mode.
|
||||
Fill mode, Auto Save mode, Font-Lock mode, Glasses mode, Outline minor
|
||||
mode, Overwrite mode, and Binary Overwrite mode.
|
||||
|
||||
Abbrev mode allows you to define abbreviations that automatically expand
|
||||
as you type them. For example, @samp{amd} might expand to @samp{abbrev
|
||||
@ -105,9 +107,8 @@ mode}. @xref{Abbrevs}, for full information.
|
||||
explicitly. Emacs inserts newlines as necessary to prevent lines from
|
||||
becoming too long. @xref{Filling}.
|
||||
|
||||
Auto Save mode causes the contents of a buffer to be saved
|
||||
periodically to reduce the amount of work you can lose in case of a
|
||||
system crash. @xref{Auto Save}.
|
||||
Auto Save mode saves the buffer contents periodically to reduce the
|
||||
amount of work you can lose in case of a crash. @xref{Auto Save}.
|
||||
|
||||
Enriched mode enables editing and saving of formatted text.
|
||||
@xref{Formatted Text}.
|
||||
@ -115,16 +116,18 @@ system crash. @xref{Auto Save}.
|
||||
Flyspell mode automatically highlights misspelled words.
|
||||
@xref{Spelling}.
|
||||
|
||||
Font-Lock mode automatically highlights certain textual units found in
|
||||
programs, such as comments, strings, and function names being defined.
|
||||
This requires a graphical display that can show multiple fonts.
|
||||
@xref{Faces}.
|
||||
Font-Lock mode automatically highlights certain textual units found
|
||||
in programs, such as comments, strings, and function names being
|
||||
defined. This requires a display that can show multiple fonts or
|
||||
colors. @xref{Faces}.
|
||||
|
||||
@ignore
|
||||
ISO Accents mode makes the characters @samp{`}, @samp{'}, @samp{"},
|
||||
@samp{^}, @samp{/} and @samp{~} combine with the following letter, to
|
||||
produce an accented letter in the ISO Latin-1 character set. The
|
||||
newer and more general feature of input methods more or less
|
||||
supersedes ISO Accents mode. @xref{Unibyte Mode}.
|
||||
@end ignore
|
||||
|
||||
Outline minor mode provides the same facilities as the major mode
|
||||
called Outline mode; but since it is a minor mode instead, you can
|
||||
@ -286,15 +289,15 @@ settings. This command creates a special customization buffer which
|
||||
shows only the names of groups and settings, and puts them in a
|
||||
structure.
|
||||
|
||||
In this buffer, you can show the contents of a group by invoking
|
||||
@samp{[+]}. When the group contents are visible, this button changes to
|
||||
@samp{[-]}; invoking that hides the group contents.
|
||||
In this buffer, you can show the contents of a group by invoking the
|
||||
@samp{[+]} button. When the group contents are visible, this button
|
||||
changes to @samp{[-]}; invoking that hides the group contents again.
|
||||
|
||||
Each setting in this buffer has a link which says @samp{[Group]},
|
||||
@samp{[Option]} or @samp{[Face]}. Invoking this link creates an
|
||||
ordinary customization buffer showing just that group and its
|
||||
contents, just that user option, or just that face. This is the way
|
||||
to change settings that you find with @kbd{M-x customize-browse}.
|
||||
Each group or setting in this buffer has a link which says
|
||||
@samp{[Group]}, @samp{[Option]} or @samp{[Face]}. Invoking this link
|
||||
creates an ordinary customization buffer showing just that group and
|
||||
its contents, just that user option, or just that face. This is the
|
||||
way to change settings that you find with @kbd{M-x customize-browse}.
|
||||
|
||||
If you can guess part of the name of the settings you are interested
|
||||
in, @kbd{M-x customize-apropos} is another way to search for settings.
|
||||
@ -343,6 +346,8 @@ value:
|
||||
save it.
|
||||
@end smallexample
|
||||
|
||||
@cindex user options, how to set
|
||||
@cindex variables, how to set
|
||||
@cindex settings, how to set
|
||||
Editing the value does not actually set the variable. To do that,
|
||||
you must @dfn{set} the variable. To do this, invoke the
|
||||
@ -415,8 +420,8 @@ instance, to specify a function instead of a pair of coding systems.
|
||||
To delete an association from the list, invoke the @samp{[DEL]} button
|
||||
for that item. To add an association, invoke @samp{[INS]} at the
|
||||
position where you want to add it. There is an @samp{[INS]} button
|
||||
between each pair of association, another at the beginning and another
|
||||
at the end, so you can add the new association at any position in the
|
||||
between each pair of associations, another at the beginning and another
|
||||
at the end, so you can add a new association at any position in the
|
||||
list.
|
||||
|
||||
@kindex TAB @r{(customization buffer)}
|
||||
@ -469,7 +474,7 @@ and then reset it, which discards the customized value,
|
||||
you can get the customized value back again with this operation.
|
||||
@end table
|
||||
|
||||
@cindex comments on customized options
|
||||
@cindex comments on customized settings
|
||||
Sometimes it is useful to record a comment about a specific
|
||||
customization. Use the @samp{Add Comment} item from the
|
||||
@samp{[State]} menu to create a field for entering the comment. The
|
||||
@ -494,13 +499,17 @@ buffer according to the setting of the option
|
||||
Each of the other buttons performs an operation---set, save or
|
||||
reset---on each of the settings in the buffer that could meaningfully
|
||||
be set, saved or reset. They do not operate on settings whose values
|
||||
are hidden, nor on subgroups not visible in the buffer.
|
||||
are hidden, nor on subgroups which are hidden or not visible in the buffer.
|
||||
|
||||
@node Saving Customizations
|
||||
@subsection Saving Customizations
|
||||
|
||||
Saving customizations from the customization buffer works by writing
|
||||
code that future sessions will read, code to set up those
|
||||
customizations again.
|
||||
|
||||
@vindex custom-file
|
||||
The customization buffer normally saves customizations in
|
||||
Normally this saves customizations in your init file,
|
||||
@file{~/.emacs}. If you wish, you can save customizations in another
|
||||
file instead. To make this work, your @file{~/.emacs} should set
|
||||
@code{custom-file} to the name of that file. Then you should load the
|
||||
@ -511,8 +520,8 @@ file by calling @code{load}. For example:
|
||||
(load custom-file)
|
||||
@end example
|
||||
|
||||
You can also use @code{custom-file} to specify different
|
||||
customization files for different Emacs versions, like this:
|
||||
You can use @code{custom-file} to specify different customization
|
||||
files for different Emacs versions, like this:
|
||||
|
||||
@example
|
||||
(cond ((< emacs-major-version 21)
|
||||
@ -650,9 +659,9 @@ on the character after point.
|
||||
@findex customize-group
|
||||
You can also set up the customization buffer with a specific group,
|
||||
using @kbd{M-x customize-group}. The immediate contents of the chosen
|
||||
group, including variables, faces, and other groups, all appear
|
||||
as well (even if not already loaded). However, the subgroups' own
|
||||
contents are not included.
|
||||
group, including settings (variables and faces), and other groups, all
|
||||
appear as well (even if not already loaded). However, the subgroups'
|
||||
own contents are not included.
|
||||
|
||||
@findex customize-apropos
|
||||
To control more precisely what to customize, you can use @kbd{M-x
|
||||
@ -663,13 +672,13 @@ specify an empty regular expression, this includes @emph{all} loaded
|
||||
groups and settings---which takes a long time to set up.
|
||||
|
||||
@findex customize-changed
|
||||
When you upgrade to a new Emacs version, you might want to customize
|
||||
new settings and settings whose meanings or default values have
|
||||
changed. To do this, use @kbd{M-x customize-changed} and
|
||||
When you upgrade to a new Emacs version, you might want to consider
|
||||
customizing new settings, and settings whose meanings or default
|
||||
values have changed. To do this, use @kbd{M-x customize-changed} and
|
||||
specify a previous Emacs version number using the minibuffer. It
|
||||
creates a customization buffer which shows all the settings and groups
|
||||
whose definitions have been changed since the specified version, loading
|
||||
them if necessary.
|
||||
whose definitions have been changed since the specified version,
|
||||
loading them if necessary.
|
||||
|
||||
@findex customize-saved
|
||||
@findex customize-customized
|
||||
@ -712,7 +721,7 @@ by visiting the ``special'' theme named @samp{user}. This theme, which
|
||||
records all the options that you set in the ordinary customization
|
||||
buffer, is always enabled, and always takes precedence over all other
|
||||
enabled Custom themes. Additionally, the @samp{user} theme is
|
||||
recorded in your @file{.emacs} file, rather than a
|
||||
recorded with code in your @file{.emacs} file, rather than a
|
||||
@file{user-theme.el} file.
|
||||
|
||||
@vindex custom-enabled-themes
|
||||
@ -734,7 +743,7 @@ theme occurring earlier in @code{custom-enabled-themes} takes effect.
|
||||
You can temporarily enable a Custom theme with @kbd{M-x
|
||||
enable-theme}. This prompts for a theme name in the minibuffer, loads
|
||||
the theme from the theme file if necessary, and enables the theme.
|
||||
You can @dfn{disabled} any enabled theme with the command @kbd{M-x
|
||||
You can @dfn{disable} any enabled theme with the command @kbd{M-x
|
||||
disable-theme}; this returns the options specified in the theme to
|
||||
their original values. To re-enable the theme, type @kbd{M-x
|
||||
enable-theme} again. If a theme file is changed during your Emacs
|
||||
@ -755,7 +764,7 @@ have a documentation string which describes what kind of value it should
|
||||
have and how the value will be used.
|
||||
|
||||
Emacs Lisp allows any variable (with a few exceptions) to have any
|
||||
kind of value, but most variables that Emacs uses need a value of a
|
||||
kind of value, but most variables that Emacs uses expect a value of a
|
||||
certain type. Often the value should always be a string, or should
|
||||
always be a number. Sometimes we say that a certain feature is turned
|
||||
on if a variable is ``non-@code{nil},'' meaning that if the variable's
|
||||
@ -766,11 +775,11 @@ variable---is @code{t}.
|
||||
|
||||
Emacs uses many Lisp variables for internal record keeping, but the
|
||||
most interesting variables for a non-programmer user are those meant
|
||||
for users to change---the @dfn{user options}.
|
||||
for users to change---these are called @dfn{user options}.
|
||||
|
||||
Each user option that you can set with the customization buffer is
|
||||
in fact a Lisp variable. Emacs does not (usually) change the values
|
||||
of these variables; instead, you set the values, and thereby alter and
|
||||
of these variables on its own; instead, you set the values in order to
|
||||
control the behavior of certain Emacs commands. Use of the
|
||||
customization buffer is explained above (@pxref{Easy Customization});
|
||||
here we describe other aspects of Emacs variables.
|
||||
@ -808,21 +817,27 @@ C-h v fill-column @key{RET}
|
||||
displays something like this:
|
||||
|
||||
@smallexample
|
||||
fill-column is a variable defined in `C source code'.
|
||||
fill-column's value is 70
|
||||
Local in buffer custom.texi; global value is 70
|
||||
Automatically becomes buffer-local when set in any fashion.
|
||||
|
||||
Documentation:
|
||||
*Column beyond which automatic line-wrapping should happen.
|
||||
Automatically becomes buffer-local when set in any fashion.
|
||||
Interactively, you can set the buffer local value using C-x f.
|
||||
|
||||
You can customize this variable.
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
The star at the beginning of the documentation indicates that this
|
||||
variable is a user option. @kbd{C-h v} is not restricted to user
|
||||
options; it allows any variable name.
|
||||
The line that says you can customize the variable indicates that this
|
||||
variable is a user option. (The star also indicates this, but it is
|
||||
an obsolete indicator that may eventually disappear.) @kbd{C-h v} is
|
||||
not restricted to user options; it allows any variable name.
|
||||
|
||||
@findex set-variable
|
||||
The most convenient way to set a specific user option variable is
|
||||
with @kbd{M-x set-variable}. This reads the variable name with the
|
||||
The most convenient way to set a specific user option variable is with
|
||||
@kbd{M-x set-variable}. This reads the variable name with the
|
||||
minibuffer (with completion), and then reads a Lisp expression for the
|
||||
new value using the minibuffer a second time (you can insert the old
|
||||
value into the minibuffer for editing via @kbd{M-n}). For example,
|
||||
@ -889,13 +904,11 @@ as soon as one hook function returns a non-@code{nil} value, the rest
|
||||
are not called at all. The documentation of each abnormal hook variable
|
||||
explains in detail what is peculiar about it.
|
||||
|
||||
@findex add-hook
|
||||
You can set a hook variable with @code{setq} like any other Lisp
|
||||
variable, but the recommended way to add a hook function to a hook
|
||||
(either normal or abnormal) is by calling @code{add-hook}. You can
|
||||
specify any valid Lisp function as the hook function, provided it can
|
||||
handle the proper number of arguments (zero arguments, in the case of
|
||||
a normal hook). Of course, not every Lisp function is @emph{useful}
|
||||
in any particular hook.
|
||||
(either normal or abnormal) is by calling @code{add-hook}.
|
||||
@xref{Hooks,,, elisp, The Emacs Lisp Reference Manual}.
|
||||
|
||||
For example, here's how to set up a hook to turn on Auto Fill mode
|
||||
when entering Text mode and other modes based on Text mode:
|
||||
@ -936,11 +949,12 @@ they are executed does not matter. Any dependence on the order is
|
||||
``asking for trouble.'' However, the order is predictable: the most
|
||||
recently added hook functions are executed first.
|
||||
|
||||
@findex remove-hook
|
||||
If you play with adding various different versions of a hook
|
||||
function by calling @code{add-hook} over and over, remember that all
|
||||
the versions you added will remain in the hook variable together. You
|
||||
can clear out individual functions with @code{remove-hook}, or do
|
||||
@code{(setq @var{hook-variable} nil)} to remove everything.
|
||||
can clear out individual functions by calling @code{remove-hook}, or
|
||||
do @code{(setq @var{hook-variable} nil)} to remove everything.
|
||||
|
||||
@node Locals
|
||||
@subsection Local Variables
|
||||
@ -963,46 +977,41 @@ buffer. Every other Emacs variable has a @dfn{global} value which is in
|
||||
effect in all buffers that have not made the variable local.
|
||||
|
||||
@findex make-local-variable
|
||||
@kbd{M-x make-local-variable} reads the name of a variable and makes it
|
||||
local to the current buffer. Further changes in this buffer will not
|
||||
affect others, and further changes in the global value will not affect this
|
||||
buffer.
|
||||
@kbd{M-x make-local-variable} reads the name of a variable and makes
|
||||
it local to the current buffer. Changing its value subsequently in
|
||||
this buffer will not affect others, and changes in its global value
|
||||
will not affect this buffer.
|
||||
|
||||
@findex make-variable-buffer-local
|
||||
@cindex per-buffer variables
|
||||
@kbd{M-x make-variable-buffer-local} reads the name of a variable and
|
||||
changes the future behavior of the variable so that it will become local
|
||||
automatically when it is set. More precisely, once a variable has been
|
||||
marked in this way, the usual ways of setting the variable automatically
|
||||
do @code{make-local-variable} first. We call such variables
|
||||
@dfn{per-buffer} variables.
|
||||
@kbd{M-x make-variable-buffer-local} marks a variable so it will
|
||||
become local automatically whenever it is set. More precisely, once a
|
||||
variable has been marked in this way, the usual ways of setting the
|
||||
variable automatically do @code{make-local-variable} first. We call
|
||||
such variables @dfn{per-buffer} variables. Many variables in Emacs
|
||||
are normally per-buffer; the variable's document string tells you when
|
||||
this is so. A per-buffer variable's global value is normally never
|
||||
effective in any buffer, but it still has a meaning: it is the initial
|
||||
value of the variable for each new buffer.
|
||||
|
||||
Major modes (@pxref{Major Modes}) always make variables local to the
|
||||
buffer before setting the variables. This is why changing major modes
|
||||
in one buffer has no effect on other buffers. Minor modes also work by
|
||||
setting variables---normally, each minor mode has one controlling
|
||||
variable which is non-@code{nil} when the mode is enabled (@pxref{Minor
|
||||
Modes}). For most minor modes, the controlling variable is per buffer.
|
||||
|
||||
Emacs contains a number of variables that are always per-buffer.
|
||||
These include @code{abbrev-mode}, @code{auto-fill-function},
|
||||
@code{case-fold-search}, @code{comment-column}, @code{ctl-arrow},
|
||||
@code{fill-column}, @code{fill-prefix}, @code{indent-tabs-mode},
|
||||
@code{left-margin}, @code{mode-line-format}, @code{overwrite-mode},
|
||||
@code{selective-display-ellipses}, @code{selective-display},
|
||||
@code{tab-width}, and @code{truncate-lines}. Some other variables are
|
||||
always local in every buffer, but they are used for internal
|
||||
purposes.@refill
|
||||
in one buffer has no effect on other buffers. Minor modes also work
|
||||
by setting variables---normally, each minor mode has one controlling
|
||||
variable which is non-@code{nil} when the mode is enabled
|
||||
(@pxref{Minor Modes}). For many minor modes, the controlling variable
|
||||
is per buffer, and thus always buffer-local. Otherwise, you can make
|
||||
it local in a specific buffer like any other variable.
|
||||
|
||||
A few variables cannot be local to a buffer because they are always
|
||||
local to each display instead (@pxref{Multiple Displays}). If you try to
|
||||
make one of these variables buffer-local, you'll get an error message.
|
||||
|
||||
@findex kill-local-variable
|
||||
@kbd{M-x kill-local-variable} reads the name of a variable and makes
|
||||
it cease to be local to the current buffer. The global value of the
|
||||
variable henceforth is in effect in this buffer. Setting the major mode
|
||||
kills all the local variables of the buffer except for a few variables
|
||||
@kbd{M-x kill-local-variable} makes a specified variable cease to be
|
||||
local to the current buffer. The global value of the variable
|
||||
henceforth is in effect in this buffer. Setting the major mode kills
|
||||
all the local variables of the buffer except for a few variables
|
||||
specially marked as @dfn{permanent locals}.
|
||||
|
||||
@findex setq-default
|
||||
@ -1082,9 +1091,9 @@ the first line as well.
|
||||
|
||||
@cindex shell scripts, and local file variables
|
||||
In shell scripts, the first line is used to identify the script
|
||||
interpreter, so you cannot put any local variables there. To accommodate
|
||||
for this, when Emacs visits a shell script, it looks for local variable
|
||||
specifications in the @emph{second} line.
|
||||
interpreter, so you cannot put any local variables there. To
|
||||
accommodate this, Emacs looks for local variable specifications in the
|
||||
@emph{second} line when the first line specifies an interpreter.
|
||||
|
||||
A @dfn{local variables list} goes near the end of the file, in the
|
||||
last page. (It is often best to put it on a page by itself.) The local
|
||||
@ -1108,9 +1117,9 @@ variables list afterward.
|
||||
;;; End: ***
|
||||
@end example
|
||||
|
||||
As you see, each line starts with the prefix @samp{;;; } and each line
|
||||
ends with the suffix @samp{ ***}. Emacs recognizes these as the prefix
|
||||
and suffix based on the first line of the list, by finding them
|
||||
Each line starts with the prefix @samp{;;; } and each line ends with
|
||||
the suffix @samp{ ***}. Emacs recognizes these as the prefix and
|
||||
suffix based on the first line of the list, by finding them
|
||||
surrounding the magic string @samp{Local Variables:}; then it
|
||||
automatically discards them from the other lines of the list.
|
||||
|
||||
@ -1155,8 +1164,7 @@ as part of their initialization.
|
||||
as the major modes; in fact, you can use it more than once, first to
|
||||
set the major mode and then to set minor modes which are specific to
|
||||
particular buffers. But most minor modes should not be specified in
|
||||
the file at all, regardless of how, because they represent user
|
||||
preferences.
|
||||
the file at all, because they represent user preferences.
|
||||
|
||||
For example, you may be tempted to try to turn on Auto Fill mode with
|
||||
a local variable list. That is a mistake. The choice of Auto Fill mode
|
||||
@ -1197,10 +1205,10 @@ answer @samp{n}.
|
||||
|
||||
Emacs normally recognizes certain variables/value pairs as safe.
|
||||
For instance, it is safe to give @code{comment-column} or
|
||||
@code{fill-column} any integer value. If a file specifies only safe
|
||||
variable/value pairs, Emacs does not ask for confirmation before
|
||||
setting them. Otherwise, you can tell Emacs to record that all the
|
||||
variable/value pairs in the file are safe, by typing @kbd{!} at the
|
||||
@code{fill-column} any integer value. If a file specifies only
|
||||
known-safe variable/value pairs, Emacs does not ask for confirmation
|
||||
before setting them. Otherwise, you can tell Emacs to record all the
|
||||
variable/value pairs in this file as safe, by typing @kbd{!} at the
|
||||
confirmation prompt. When Emacs encounters these variable/value pairs
|
||||
subsequently, in the same file or others, it will assume they are
|
||||
safe.
|
||||
@ -1232,9 +1240,10 @@ is neither @code{t} nor @code{nil}, so normally Emacs does ask for
|
||||
confirmation about processes @code{eval} variables.
|
||||
|
||||
@vindex safe-local-eval-forms
|
||||
The @code{safe-local-eval-forms} is a customizable list of eval
|
||||
forms which are safe to eval, so Emacs should not ask for
|
||||
confirmation to evaluate these forms.
|
||||
But there is an exception. The @code{safe-local-eval-forms} is a
|
||||
customizable list of eval forms which are safe. Emacs does not ask
|
||||
for confirmation when it finds these forms for the @code{eval}
|
||||
variable.
|
||||
|
||||
@node Key Bindings
|
||||
@section Customizing Key Bindings
|
||||
@ -1246,7 +1255,7 @@ to customize key bindings.
|
||||
|
||||
Recall that a command is a Lisp function whose definition provides for
|
||||
interactive use. Like every Lisp function, a command has a function
|
||||
name which usually consists of lower-case letters and hyphens.
|
||||
name, which usually consists of lower-case letters and hyphens.
|
||||
|
||||
@menu
|
||||
* Keymaps:: Generalities. The global keymap.
|
||||
@ -1405,19 +1414,6 @@ mode.
|
||||
in effect, the definitions in its keymap override both the major
|
||||
mode's local keymap and the global keymap.
|
||||
|
||||
@vindex c-mode-map
|
||||
@vindex lisp-mode-map
|
||||
The local keymaps for Lisp mode and several other major modes always
|
||||
exist even when not in use. These are kept in variables named
|
||||
@code{lisp-mode-map} and so on. For major modes less often used, the
|
||||
local keymap is normally constructed only when the mode is used for the
|
||||
first time in a session. This is to save space. If you wish to change
|
||||
one of these keymaps, you must use the major mode's @dfn{mode
|
||||
hook}---see below.
|
||||
|
||||
All minor mode keymaps are created in advance. There is no way to
|
||||
defer their creation until the first time the minor mode is enabled.
|
||||
|
||||
A local keymap can locally redefine a key as a prefix key by defining
|
||||
it as a prefix keymap. If the key is also defined globally as a prefix,
|
||||
then its local and global definitions (both keymaps) effectively
|
||||
@ -1433,17 +1429,16 @@ sequence by looking in several keymaps, one by one, for a binding of the
|
||||
whole key sequence. First it checks the minor mode keymaps for minor
|
||||
modes that are enabled, then it checks the major mode's keymap, and then
|
||||
it checks the global keymap. This is not precisely how key lookup
|
||||
works, but it's good enough for understanding ordinary circumstances.
|
||||
works, but it's good enough for understanding the results in ordinary
|
||||
circumstances.
|
||||
|
||||
@cindex rebinding major mode keys
|
||||
@findex define-key
|
||||
To change the local bindings of a major mode, you must change the
|
||||
mode's local keymap. Normally you must wait until the first time the
|
||||
mode is used, because most major modes don't create their keymaps until
|
||||
then. If you want to specify something in your @file{~/.emacs} file to
|
||||
change a major mode's bindings, you must use the mode's mode hook to
|
||||
delay the change until the mode is first used.
|
||||
Most major modes construct their keymaps when the mode is used for
|
||||
the first time in a session. If you wish to change one of these
|
||||
keymaps, you must use the major mode's @dfn{mode hook}
|
||||
(@pxref{Hooks}).
|
||||
|
||||
@findex define-key
|
||||
For example, the command @code{texinfo-mode} to select Texinfo mode
|
||||
runs the hook @code{texinfo-mode-hook}. Here's how you can use the hook
|
||||
to add local bindings (not very useful, we admit) for @kbd{C-c n} and
|
||||
@ -1458,8 +1453,6 @@ to add local bindings (not very useful, we admit) for @kbd{C-c n} and
|
||||
'forward-paragraph)))
|
||||
@end example
|
||||
|
||||
@xref{Hooks}.
|
||||
|
||||
@node Minibuffer Maps
|
||||
@subsection Minibuffer Keymaps
|
||||
|
||||
@ -1545,10 +1538,10 @@ key to rebind.
|
||||
You can rebind a key that contains more than one event in the same
|
||||
way. Emacs keeps reading the key to rebind until it is a complete key
|
||||
(that is, not a prefix key). Thus, if you type @kbd{C-f} for
|
||||
@var{key}, that's the end; the minibuffer is entered immediately to
|
||||
read @var{cmd}. But if you type @kbd{C-x}, another character is read;
|
||||
if that is @kbd{4}, another character is read, and so on. For
|
||||
example,
|
||||
@var{key}, that's the end; it enters the minibuffer immediately to
|
||||
read @var{cmd}. But if you type @kbd{C-x}, since that's a prefix, it
|
||||
reads another character; if that is @kbd{4}, another prefix character,
|
||||
it reads one more character, and so on. For example,
|
||||
|
||||
@example
|
||||
M-x global-set-key @key{RET} C-x 4 $ spell-other-window @key{RET}
|
||||
@ -1572,9 +1565,9 @@ definition (or lack of one) come back into effect in that major mode.
|
||||
If you have redefined (or undefined) a key and you subsequently wish
|
||||
to retract the change, undefining the key will not do the job---you need
|
||||
to redefine the key with its standard definition. To find the name of
|
||||
the standard definition of a key, go to a Fundamental mode buffer and
|
||||
use @kbd{C-h c}. The documentation of keys in this manual also lists
|
||||
their command names.
|
||||
the standard definition of a key, go to a Fundamental mode buffer in a
|
||||
fresh Emacs and use @kbd{C-h c}. The documentation of keys in this
|
||||
manual also lists their command names.
|
||||
|
||||
If you want to prevent yourself from invoking a command by mistake, it
|
||||
is better to disable the command than to undefine the key. A disabled
|
||||
@ -1669,8 +1662,8 @@ rewrite the first six examples above to use vectors:
|
||||
|
||||
@noindent
|
||||
As you see, you represent a multi-character key sequence with a vector
|
||||
by listing all of the characters in order within the square brackets that
|
||||
delimit the vector.
|
||||
by listing all of the characters, in order, within the square brackets
|
||||
that delimit the vector.
|
||||
|
||||
Language and coding systems can cause problems with key bindings
|
||||
for non-@acronym{ASCII} characters. @xref{Non-ASCII Rebinding}.
|
||||
@ -1819,10 +1812,10 @@ because the terminal sends the same character in both cases.
|
||||
@cindex rebinding non-@acronym{ASCII} keys
|
||||
@cindex non-@acronym{ASCII} keys, binding
|
||||
|
||||
If your keyboard has keys that send non-@acronym{ASCII}
|
||||
If your keyboard has keys that send non-@acronym{ASCII}
|
||||
characters, such as accented letters, rebinding these keys
|
||||
must be done by using a vector like this@footnote{Note that
|
||||
you should avoid the string syntax for binding
|
||||
must be done by using a vector like this@footnote{You must
|
||||
avoid the string syntax for binding
|
||||
non-@acronym{ASCII} characters, since they will be
|
||||
interpreted as meta keys. @xref{Strings of Events,,,elisp,
|
||||
The Emacs Lisp Reference Manual}.}:
|
||||
@ -1834,11 +1827,11 @@ The Emacs Lisp Reference Manual}.}:
|
||||
@noindent
|
||||
Type @kbd{C-q} followed by the key you want to bind, to insert @var{char}.
|
||||
|
||||
Since this puts a non-@acronym{ASCII} character in the @file{.emacs},
|
||||
Since this puts a non-@acronym{ASCII} character in the @file{.emacs},
|
||||
you should specify a coding system for that file that supports the
|
||||
character in question. @xref{Init Syntax}.
|
||||
character in question. @xref{Init Non-ASCII}.
|
||||
|
||||
@strong{Warning:} if you change the keyboard encoding, or change
|
||||
@strong{Warning:} if you change the keyboard encoding, or change
|
||||
between multibyte and unibyte mode, or anything that would alter which
|
||||
code @kbd{C-q} would insert for that character, you'll need to edit
|
||||
the Lisp expression accordingly, to use the character code generated
|
||||
@ -1980,19 +1973,19 @@ usual to do so.
|
||||
@subsection Disabling Commands
|
||||
@cindex disabled command
|
||||
|
||||
Disabling a command marks the command as requiring confirmation before it
|
||||
can be executed. The purpose of disabling a command is to prevent
|
||||
beginning users from executing it by accident and being confused.
|
||||
Disabling a command menas it requires confirmation before it can be
|
||||
executed. The purpose of disabling a command is to prevent users from
|
||||
executing it by accident and being confused.
|
||||
|
||||
An attempt to invoke a disabled command interactively in Emacs
|
||||
displays a window containing the command's name, its documentation, and
|
||||
some instructions on what to do immediately; then Emacs asks for input
|
||||
saying whether to execute the command as requested, enable it and
|
||||
execute it, or cancel. If you decide to enable the command, you are
|
||||
asked whether to do this permanently or just for the current session.
|
||||
(Enabling permanently works by automatically editing your @file{.emacs}
|
||||
file.) You can also type @kbd{!} to enable @emph{all} commands,
|
||||
for the current session only.
|
||||
displays a window containing the command's name, its documentation,
|
||||
and some instructions on what to do immediately; then Emacs asks for
|
||||
input saying whether to execute the command as requested, enable it
|
||||
and execute it, or cancel. If you decide to enable the command, you
|
||||
must then answer another question---whether to do this permanently, or
|
||||
just for the current session. (Enabling permanently works by
|
||||
automatically editing your @file{.emacs} file.) You can also type
|
||||
@kbd{!} to enable @emph{all} commands, for the current session only.
|
||||
|
||||
The direct mechanism for disabling a command is to put a
|
||||
non-@code{nil} @code{disabled} property on the Lisp symbol for the
|
||||
@ -2013,15 +2006,14 @@ is included in the message displayed when the command is used:
|
||||
@findex disable-command
|
||||
@findex enable-command
|
||||
You can make a command disabled either by editing the @file{.emacs}
|
||||
file directly or with the command @kbd{M-x disable-command}, which edits
|
||||
file directly, or with the command @kbd{M-x disable-command}, which edits
|
||||
the @file{.emacs} file for you. Likewise, @kbd{M-x enable-command}
|
||||
edits @file{.emacs} to enable a command permanently. @xref{Init File}.
|
||||
|
||||
If Emacs was invoked with the @option{-q} or @option{--no-init-file}
|
||||
options (@pxref{Initial Options}), it will not edit your
|
||||
@file{~/.emacs} init file. This is because editing the init file from
|
||||
such a session might overwrite the lines you might have on your init
|
||||
file which enable and disable commands.
|
||||
@file{~/.emacs} init file. Doing so could lose information
|
||||
because Emacs has not read your init file.
|
||||
|
||||
Whether a command is disabled is independent of what key is used to
|
||||
invoke it; disabling also applies if the command is invoked using
|
||||
@ -2040,7 +2032,7 @@ one of fifteen-odd @dfn{syntax classes}. In some cases it specifies
|
||||
some additional information also.
|
||||
|
||||
Each major mode has its own syntax table (though related major modes
|
||||
sometimes share one syntax table) which it installs in each buffer
|
||||
sometimes share one syntax table), which it installs in each buffer
|
||||
that uses the mode. The syntax table installed in the current buffer
|
||||
is the one that all commands use, so we call it ``the'' syntax table.
|
||||
|
||||
@ -2048,7 +2040,7 @@ is the one that all commands use, so we call it ``the'' syntax table.
|
||||
@findex describe-syntax
|
||||
To display a description of the contents of the current syntax
|
||||
table, type @kbd{C-h s} (@code{describe-syntax}). The description of
|
||||
each character includes both the string you would have to give to
|
||||
each character includes the string you would have to give to
|
||||
@code{modify-syntax-entry} to set up that character's current syntax,
|
||||
starting with the character which designates its syntax class, plus
|
||||
some English text to explain its meaning.
|
||||
@ -2176,7 +2168,8 @@ a Meta character, as in @samp{\M-a} for @kbd{Meta-A} or @samp{\M-\C-a} for
|
||||
|
||||
@cindex international characters in @file{.emacs}
|
||||
@cindex non-@acronym{ASCII} characters in @file{.emacs}
|
||||
If you want to include non-@acronym{ASCII} characters in strings in your init
|
||||
@anchor{Init Non-ASCII}If you want to include non-@acronym{ASCII}
|
||||
characters in strings in your init
|
||||
file, you should consider putting a @w{@samp{-*-coding:
|
||||
@var{coding-system}-*-}} tag on the first line which states the coding
|
||||
system used to save your @file{.emacs}, as explained in @ref{Recognize
|
||||
@ -2241,7 +2234,7 @@ is not what you probably want to do in an init file.
|
||||
Specify your own email address, if Emacs can't figure it out correctly.
|
||||
|
||||
@example
|
||||
(setq user-mail-address "coon@@yoyodyne.com")
|
||||
(setq user-mail-address "rumsfeld@@torture.gov")
|
||||
@end example
|
||||
|
||||
Various Emacs packages that need your own email address use the value of
|
||||
|
410
man/dired.texi
410
man/dired.texi
@ -13,11 +13,12 @@ Emacs commands to move around in this buffer, and special Dired commands
|
||||
to operate on the files listed.
|
||||
|
||||
The Dired buffer is ``read-only,'' and inserting text in it is not
|
||||
useful, so ordinary printing characters such as @kbd{d} and @kbd{x} are
|
||||
used for special Dired commands. Some Dired commands @dfn{mark} or
|
||||
@dfn{flag} the @dfn{current file} (that is, the file on the current
|
||||
line); other commands operate on the marked files or on the flagged
|
||||
files.
|
||||
useful, so ordinary printing characters such as @kbd{d} and @kbd{x}
|
||||
are redefined for special Dired commands. Some Dired commands
|
||||
@dfn{mark} or @dfn{flag} the @dfn{current file} (that is, the file on
|
||||
the current line); other commands operate on the marked files or on
|
||||
the flagged files. You first mark certain files in order to operate
|
||||
on all of them with on command.
|
||||
|
||||
The Dired-X package provides various extra features for Dired mode.
|
||||
@xref{Top, Dired-X,,dired-x, Dired Extra Version 2 User's Manual}.
|
||||
@ -40,8 +41,6 @@ files.
|
||||
* Updating: Dired Updating. Discarding lines for files of no interest.
|
||||
* Find: Dired and Find. Using `find' to choose the files for Dired.
|
||||
* Wdired:: Operating on files by editing the Dired buffer.
|
||||
* Tumme:: Image file and thumbnail viewing and
|
||||
manipulation from the Dired buffer.
|
||||
* Misc: Misc Dired Features. Various other features.
|
||||
@end menu
|
||||
|
||||
@ -53,18 +52,20 @@ files.
|
||||
@vindex dired-listing-switches
|
||||
To invoke Dired, do @kbd{C-x d} or @kbd{M-x dired}. The command
|
||||
reads a directory name or wildcard file name pattern as a minibuffer
|
||||
argument to specify which files to list. @kbd{C-x C-f} given a
|
||||
argument to specify the files to list. @kbd{C-x C-f} given a
|
||||
directory name also invokes Dired. Where @code{dired} differs from
|
||||
@code{list-directory} is that it puts the buffer into Dired mode, so
|
||||
that the special commands of Dired are available.
|
||||
|
||||
The variable @code{dired-listing-switches} specifies the options to
|
||||
give to @code{ls} for listing the directory; this string @emph{must} contain
|
||||
@samp{-l}. If you use a numeric prefix argument with the @code{dired}
|
||||
command, you can specify the @code{ls} switches with the minibuffer
|
||||
before you enter the directory specification. No matter how they are
|
||||
specified, the @code{ls} switches should all be short options (that
|
||||
is, single characters) requiring no arguments.
|
||||
give to @code{ls} for listing the directory; this string @emph{must}
|
||||
contain @samp{-l}. If you use a numeric prefix argument with the
|
||||
@code{dired} command, you can specify the @code{ls} switches with the
|
||||
minibuffer before you enter the directory specification. No matter
|
||||
how they are specified, the @code{ls} switches can include short
|
||||
options (that is, single characters) requiring no arguments, and long
|
||||
options (starting with @samp{--}) whose arguments are specified with
|
||||
@samp{=}.
|
||||
|
||||
@findex dired-other-window
|
||||
@kindex C-x 4 d
|
||||
@ -81,10 +82,9 @@ separate frame to display the Dired buffer.
|
||||
@kindex C-n @r{(Dired)}
|
||||
@kindex C-p @r{(Dired)}
|
||||
All the usual Emacs cursor motion commands are available in Dired
|
||||
buffers. Some special-purpose cursor motion commands are also
|
||||
provided. The keys @kbd{C-n} and @kbd{C-p} are redefined to put the
|
||||
cursor at the beginning of the file name on the line, rather than at the
|
||||
beginning of the line.
|
||||
buffers. The keys @kbd{C-n} and @kbd{C-p} are redefined to put the
|
||||
cursor at the beginning of the file name on the line, rather than at
|
||||
the beginning of the line.
|
||||
|
||||
@kindex SPC @r{(Dired)}
|
||||
For extra convenience, @key{SPC} and @kbd{n} in Dired are equivalent
|
||||
@ -121,42 +121,47 @@ Delete the files that are flagged for deletion.
|
||||
|
||||
@kindex d @r{(Dired)}
|
||||
@findex dired-flag-file-deletion
|
||||
You can flag a file for deletion by moving to the line describing the
|
||||
file and typing @kbd{d} (@code{dired-flag-file-deletion}). The deletion flag is visible as a @samp{D} at
|
||||
the beginning of the line. This command moves point to the next line,
|
||||
so that repeated @kbd{d} commands flag successive files. A numeric
|
||||
argument serves as a repeat count.
|
||||
|
||||
@cindex recursive deletion
|
||||
@vindex dired-recursive-deletes
|
||||
The variable @code{dired-recursive-deletes} controls whether the
|
||||
delete command will delete non-empty directories (including their
|
||||
contents). The default is to delete only empty directories.
|
||||
You can flag a file for deletion by moving to the line describing
|
||||
the file and typing @kbd{d} (@code{dired-flag-file-deletion}). The
|
||||
deletion flag is visible as a @samp{D} at the beginning of the line.
|
||||
This command moves point to the next line, so that repeated @kbd{d}
|
||||
commands flag successive files. A numeric argument serves as a repeat
|
||||
count.
|
||||
|
||||
@kindex u @r{(Dired deletion)}
|
||||
@kindex DEL @r{(Dired)}
|
||||
The files are flagged for deletion rather than deleted immediately to
|
||||
reduce the danger of deleting a file accidentally. Until you direct
|
||||
Dired to delete the flagged files, you can remove deletion flags using
|
||||
the commands @kbd{u} and @key{DEL}. @kbd{u} (@code{dired-unmark}) works
|
||||
just like @kbd{d}, but removes flags rather than making flags.
|
||||
@key{DEL} (@code{dired-unmark-backward}) moves upward, removing flags;
|
||||
it is like @kbd{u} with argument @minus{}1.
|
||||
The reason for flagging files for deletion, rather than deleting
|
||||
files immediately, is to reduce the danger of deleting a file
|
||||
accidentally. Until you direct Dired to delete the flagged files, you
|
||||
can remove deletion flags using the commands @kbd{u} and @key{DEL}.
|
||||
@kbd{u} (@code{dired-unmark}) works just like @kbd{d}, but removes
|
||||
flags rather than making flags. @key{DEL}
|
||||
(@code{dired-unmark-backward}) moves upward, removing flags; it is
|
||||
like @kbd{u} with argument @minus{}1.
|
||||
|
||||
@kindex x @r{(Dired)}
|
||||
@findex dired-do-flagged-delete
|
||||
@cindex expunging (Dired)
|
||||
To delete the flagged files, type @kbd{x} (@code{dired-do-flagged-delete}).
|
||||
(This is also known as @dfn{expunging}.)
|
||||
This command first displays a list of all the file names flagged for
|
||||
deletion, and requests confirmation with @kbd{yes}. If you confirm,
|
||||
Dired deletes the flagged files, then deletes their lines from the text
|
||||
of the Dired buffer. The shortened Dired buffer remains selected.
|
||||
To delete the flagged files, type @kbd{x}
|
||||
(@code{dired-do-flagged-delete}). (This is also known as
|
||||
@dfn{expunging}.) This command first displays a list of all the file
|
||||
names flagged for deletion, and requests confirmation with @kbd{yes}.
|
||||
If you confirm, Dired deletes the flagged files, then deletes their
|
||||
lines from the text of the Dired buffer. The Dired buffer, with
|
||||
somewhat fewer lines, remains selected.
|
||||
|
||||
If you answer @kbd{no} or quit with @kbd{C-g} when asked to confirm, you
|
||||
return immediately to Dired, with the deletion flags still present in
|
||||
the buffer, and no files actually deleted.
|
||||
|
||||
@cindex recursive deletion
|
||||
@vindex dired-recursive-deletes
|
||||
You can delete empty directories just like other files, but normally
|
||||
Dired cannot delete directories that are nonempty. If the variable
|
||||
@code{dired-recursive-deletes} is non-@code{nil}, then Dired can
|
||||
delete nonempty directories including all their contents. That can
|
||||
be somewhat risky.
|
||||
|
||||
@node Flagging Many Files
|
||||
@section Flagging Many Files at Once
|
||||
@cindex flagging many files for deletion (in Dired)
|
||||
@ -171,8 +176,8 @@ Flag all backup files (files whose names end with @samp{~}) for deletion
|
||||
(@pxref{Backup}).
|
||||
|
||||
@item &
|
||||
Flag for deletion all files with certain kinds of names, names that
|
||||
suggest you could easily create the files again.
|
||||
Flag for deletion all files with certain kinds of names which suggest
|
||||
you could easily create those files again.
|
||||
|
||||
@item .@: @r{(Period)}
|
||||
Flag excess numeric backup files for deletion. The oldest and newest
|
||||
@ -204,14 +209,14 @@ files produced by @TeX{}, @samp{.bak} files, and the @samp{.orig} and
|
||||
@findex dired-flag-auto-save-files
|
||||
@cindex deleting auto-save files
|
||||
@kbd{#} (@code{dired-flag-auto-save-files}) flags for deletion all
|
||||
files whose names look like auto-save files (@pxref{Auto Save})---that
|
||||
is, files whose names begin and end with @samp{#}.
|
||||
files whose names look like auto-save files---that is, files whose
|
||||
names begin and end with @samp{#}. @xref{Auto Save}.
|
||||
|
||||
@kindex ~ @r{(Dired)}
|
||||
@findex dired-flag-backup-files
|
||||
@kbd{~} (@code{dired-flag-backup-files}) flags for deletion all files
|
||||
whose names say they are backup files (@pxref{Backup})---that is, files
|
||||
whose names end in @samp{~}.
|
||||
@kbd{~} (@code{dired-flag-backup-files}) flags for deletion all
|
||||
files whose names say they are backup files---that is, files whose
|
||||
names end in @samp{~}. @xref{Backup}.
|
||||
|
||||
@kindex . @r{(Dired)}
|
||||
@vindex dired-kept-versions
|
||||
@ -235,8 +240,9 @@ specify the number of oldest versions of each file to keep.
|
||||
The @kbd{% d} command flags all files whose names match a specified
|
||||
regular expression (@code{dired-flag-files-regexp}). Only the
|
||||
non-directory part of the file name is used in matching. You can use
|
||||
@samp{^} and @samp{$} to anchor matches. You can exclude subdirectories
|
||||
by hiding them (@pxref{Hiding Subdirectories}).
|
||||
@samp{^} and @samp{$} to anchor matches. You can exclude certain
|
||||
subdirectories from marking by hiding them while you use @kbd{% d}.
|
||||
@xref{Hiding Subdirectories}.
|
||||
|
||||
@node Dired Visiting
|
||||
@section Visiting Files in Dired
|
||||
@ -301,8 +307,8 @@ Ops, View File, Miscellaneous File Operations}.
|
||||
@kindex ^ @r{(Dired)}
|
||||
@findex dired-up-directory
|
||||
Visit the parent directory of the current directory
|
||||
(@code{dired-up-directory}). This is more convenient than moving to
|
||||
the parent directory's line and typing @kbd{f} there.
|
||||
(@code{dired-up-directory}). This is equivalent to moving to the line
|
||||
for @file{..} and typing @kbd{f} there.
|
||||
@end table
|
||||
|
||||
@node Marks vs Flags
|
||||
@ -311,12 +317,13 @@ the parent directory's line and typing @kbd{f} there.
|
||||
@cindex marking many files (in Dired)
|
||||
Instead of flagging a file with @samp{D}, you can @dfn{mark} the
|
||||
file with some other character (usually @samp{*}). Most Dired
|
||||
commands to operate on files use the files marked with @samp{*}, the
|
||||
exception being @kbd{x} which deletes the flagged files.
|
||||
commands to operate on files use the files marked with @samp{*}. The
|
||||
only command that operates on flagged flies is @kbd{x}, which expunges
|
||||
them.
|
||||
|
||||
Here are some commands for marking with @samp{*}, or for unmarking or
|
||||
operating on marks. (@xref{Dired Deletion}, for commands to flag and
|
||||
unflag files.)
|
||||
Here are some commands for marking with @samp{*}, for unmarking, and
|
||||
for operating on marks. (@xref{Dired Deletion}, for commands to flag
|
||||
and unflag files.)
|
||||
|
||||
@table @kbd
|
||||
@item m
|
||||
@ -348,7 +355,7 @@ With a numeric argument, unmark all those files.
|
||||
@kindex * / @r{(Dired)}
|
||||
@findex dired-mark-directories
|
||||
@cindex marking subdirectories (in Dired)
|
||||
Mark with @samp{*} all files which are actually directories, except for
|
||||
Mark with @samp{*} all files which are directories, except for
|
||||
@file{.} and @file{..} (@code{dired-mark-directories}). With a numeric
|
||||
argument, unmark all those files.
|
||||
|
||||
@ -455,11 +462,12 @@ This assumes that no files were already marked with @samp{t}.
|
||||
Mark (with @samp{*}) all files whose names match the regular expression
|
||||
@var{regexp} (@code{dired-mark-files-regexp}). This command is like
|
||||
@kbd{% d}, except that it marks files with @samp{*} instead of flagging
|
||||
with @samp{D}. @xref{Flagging Many Files}.
|
||||
with @samp{D}.
|
||||
|
||||
Only the non-directory part of the file name is used in matching. Use
|
||||
@samp{^} and @samp{$} to anchor matches. Exclude subdirectories by
|
||||
hiding them (@pxref{Hiding Subdirectories}).
|
||||
@samp{^} and @samp{$} to anchor matches. You can exclude
|
||||
subdirectories by temporarily hiding them (@pxref{Hiding
|
||||
Subdirectories}).
|
||||
|
||||
@item % g @var{regexp} @key{RET}
|
||||
@findex dired-mark-files-containing-regexp
|
||||
@ -471,16 +479,21 @@ the regular expression @var{regexp}
|
||||
@kbd{% m}, except that it searches the file contents instead of the file
|
||||
name.
|
||||
|
||||
@item C-_
|
||||
@item C-x u
|
||||
@itemx C-_
|
||||
@itemx C-/
|
||||
@kindex C-_ @r{(Dired)}
|
||||
@findex dired-undo
|
||||
Undo changes in the Dired buffer, such as adding or removing
|
||||
marks (@code{dired-undo}). @emph{This command does not revert the
|
||||
actual file operations, nor recover lost files!} It just undoes
|
||||
changes in the buffer itself. For example, if used after renaming one
|
||||
or more files, @code{dired-undo} restores the original names, which
|
||||
will get the Dired buffer out of sync with the actual contents of the
|
||||
directory.
|
||||
changes in the buffer itself.
|
||||
|
||||
In some cases, using this after commands that operate on files can
|
||||
cause trouble. For example, after renaming one or more files,
|
||||
@code{dired-undo} restores the original names in the Dired buffer,
|
||||
which gets the Dired buffer out of sync with the actual contents of
|
||||
the directory.
|
||||
@end table
|
||||
|
||||
@node Operating on Files
|
||||
@ -490,8 +503,8 @@ directory.
|
||||
This section describes the basic Dired commands to operate on one file
|
||||
or several files. All of these commands are capital letters; all of
|
||||
them use the minibuffer, either to read an argument or to ask for
|
||||
confirmation, before they act. All of them give you several ways to
|
||||
specify which files to manipulate:
|
||||
confirmation, before they act. All of them let you specify the
|
||||
files to manipulate in these ways:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
@ -508,6 +521,10 @@ on all those files.
|
||||
Otherwise, the command operates on the current file only.
|
||||
@end itemize
|
||||
|
||||
@noindent
|
||||
Certain other Dired commands, such as @kbd{!} and the @samp{%}
|
||||
commands, use the same conventions to decide which files to work on.
|
||||
|
||||
@vindex dired-dwim-target
|
||||
@cindex two directories (in Dired)
|
||||
Commands which ask for a destination directory, such as those which
|
||||
@ -517,9 +534,7 @@ buffer's default directory, but if the variable @code{dired-dwim-target}
|
||||
is non-@code{nil}, and if there is another Dired buffer displayed in the
|
||||
next window, that other buffer's directory is suggested instead.
|
||||
|
||||
Here are the file-manipulating commands that operate on files in this
|
||||
way. (Some other Dired commands, such as @kbd{!} and the @samp{%}
|
||||
commands, also use these conventions to decide which files to work on.)
|
||||
Here are the file-manipulating Dired commands that operate on files.
|
||||
|
||||
@table @kbd
|
||||
@findex dired-do-copy
|
||||
@ -531,15 +546,15 @@ is the directory to copy into, or (if copying a single file) the new
|
||||
name.
|
||||
|
||||
@vindex dired-copy-preserve-time
|
||||
If @code{dired-copy-preserve-time} is non-@code{nil}, then copying with
|
||||
this command sets the modification time of the new file to be the same
|
||||
as that of the old file.
|
||||
If @code{dired-copy-preserve-time} is non-@code{nil}, then copying
|
||||
with this command preserves the modification time of the old file in
|
||||
the copy.
|
||||
|
||||
@vindex dired-recursive-copies
|
||||
@cindex recursive copying
|
||||
The variable @code{dired-recursive-copies} controls whether
|
||||
directories are copied recursively. The default is to not copy
|
||||
recursively, which means that directories cannot be copied.
|
||||
The variable @code{dired-recursive-copies} controls whether to copy
|
||||
directories recursively. The default is @code{nil}, which means that
|
||||
directories cannot be copied.
|
||||
|
||||
@item D
|
||||
@findex dired-do-delete
|
||||
@ -608,7 +623,8 @@ different places).
|
||||
@kindex T @r{(Dired)}
|
||||
@cindex changing file time (in Dired)
|
||||
@item T @var{timestamp} @key{RET}
|
||||
Change the time of the specified files (@code{dired-do-touch}).
|
||||
Touch the specified files (@code{dired-do-touch}). This means
|
||||
updating their modification times to the present time.
|
||||
|
||||
@findex dired-do-print
|
||||
@kindex P @r{(Dired)}
|
||||
@ -625,7 +641,7 @@ suitable guess made using the variables @code{lpr-command} and
|
||||
@cindex compressing files (in Dired)
|
||||
@item Z
|
||||
Compress the specified files (@code{dired-do-compress}). If the file
|
||||
appears to be a compressed file already, it is uncompressed instead.
|
||||
appears to be a compressed file already, uncompress it instead.
|
||||
|
||||
@findex dired-do-load
|
||||
@kindex L @r{(Dired)}
|
||||
@ -666,12 +682,6 @@ query replace loop, you can use @kbd{M-,} to resume the scan and replace
|
||||
more matches. @xref{Tags Search}.
|
||||
@end table
|
||||
|
||||
@kindex + @r{(Dired)}
|
||||
@findex dired-create-directory
|
||||
One special file-operation command is @kbd{+}
|
||||
(@code{dired-create-directory}). This command reads a directory name and
|
||||
creates the directory if it does not already exist.
|
||||
|
||||
@node Shell Commands in Dired
|
||||
@section Shell Commands in Dired
|
||||
@cindex shell commands, Dired
|
||||
@ -679,12 +689,16 @@ creates the directory if it does not already exist.
|
||||
@findex dired-do-shell-command
|
||||
@kindex ! @r{(Dired)}
|
||||
@kindex X @r{(Dired)}
|
||||
The Dired command @kbd{!} (@code{dired-do-shell-command}) reads a shell
|
||||
command string in the minibuffer and runs that shell command on all the
|
||||
specified files. @kbd{X} is a synonym for @kbd{!}. You can specify the
|
||||
files to operate on in the usual ways for Dired commands
|
||||
(@pxref{Operating on Files}). There are two ways of applying a shell
|
||||
command to multiple files:
|
||||
The Dired command @kbd{!} (@code{dired-do-shell-command}) reads a
|
||||
shell command string in the minibuffer and runs that shell command on
|
||||
all the specified files. (@kbd{X} is a synonym for @kbd{!}.) You can
|
||||
specify the files to operate on in the usual ways for Dired commands
|
||||
(@pxref{Operating on Files}).
|
||||
|
||||
The working directory for the shell command is the top-level directory
|
||||
of the Dired buffer.
|
||||
|
||||
There are two ways of applying a shell command to multiple files:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
@ -711,12 +725,12 @@ file.
|
||||
|
||||
@item
|
||||
However, if the command string contains @samp{?} surrounded by
|
||||
whitespace, the current file name is substituted for @samp{?} (rather
|
||||
whitespace, the current file name is substituted for @samp{?} (rather
|
||||
than added at the end). You can use @samp{?} this way more than once
|
||||
in the command, and the same file name replaces each occurrence.
|
||||
@end itemize
|
||||
|
||||
To iterate over the file names in a more complicated fashion, use an
|
||||
To iterate over the file names in a more complicated fashion, use an
|
||||
explicit shell loop. For example, here is how to uuencode each file,
|
||||
making the output file name by appending @samp{.uu} to the input file
|
||||
name:
|
||||
@ -725,11 +739,8 @@ name:
|
||||
for file in * ; do uuencode "$file" "$file" >"$file".uu; done
|
||||
@end example
|
||||
|
||||
The working directory for the shell command is the top-level directory
|
||||
of the Dired buffer.
|
||||
|
||||
The @kbd{!} command does not attempt to update the Dired buffer to show
|
||||
new or modified files, because it doesn't really understand shell
|
||||
The @kbd{!} command does not attempt to update the Dired buffer to
|
||||
show new or modified files, because it doesn't understand shell
|
||||
commands, and does not know what files the shell command changed. Use
|
||||
the @kbd{g} command to update the Dired buffer (@pxref{Dired
|
||||
Updating}).
|
||||
@ -738,7 +749,8 @@ Updating}).
|
||||
@section Transforming File Names in Dired
|
||||
|
||||
This section describes Dired commands which alter file names in a
|
||||
systematic way.
|
||||
systematic way. Each command operates on some or all of the marked
|
||||
files, using a new name made by transforming the existing name.
|
||||
|
||||
Like the basic Dired file-manipulation commands (@pxref{Operating on
|
||||
Files}), the commands described here operate either on the next
|
||||
@ -750,7 +762,7 @@ Flags}.)
|
||||
@emph{interactively}: they ask you to confirm the operation for each
|
||||
candidate file. Thus, you can select more files than you actually
|
||||
need to operate on (e.g., with a regexp that matches many files), and
|
||||
then refine the selection by typing @kbd{y} or @kbd{n} when the
|
||||
then filter the selected names by typing @kbd{y} or @kbd{n} when the
|
||||
command prompts for confirmation.
|
||||
|
||||
@table @kbd
|
||||
@ -787,17 +799,16 @@ in each case computing the new name by regular-expression substitution
|
||||
from the name of the old file.
|
||||
@end table
|
||||
|
||||
The four regular-expression substitution commands effectively perform
|
||||
a search-and-replace on the selected file names in the Dired buffer.
|
||||
They read two arguments: a regular expression @var{from}, and a
|
||||
substitution pattern @var{to}.
|
||||
|
||||
The commands match each ``old'' file name against the regular
|
||||
expression @var{from}, and then replace the matching part with @var{to}.
|
||||
You can use @samp{\&} and @samp{\@var{digit}} in @var{to} to refer to
|
||||
all or part of what the pattern matched in the old file name, as in
|
||||
@code{replace-regexp} (@pxref{Regexp Replace}). If the regular expression
|
||||
matches more than once in a file name, only the first match is replaced.
|
||||
The four regular-expression substitution commands effectively
|
||||
perform a search-and-replace on the selected file names. They read
|
||||
two arguments: a regular expression @var{from}, and a substitution
|
||||
pattern @var{to}; they match each ``old'' file name against
|
||||
@var{from}, and then replace the matching part with @var{to}. You can
|
||||
use @samp{\&} and @samp{\@var{digit}} in @var{to} to refer to all or
|
||||
part of what the pattern matched in the old file name, as in
|
||||
@code{replace-regexp} (@pxref{Regexp Replace}). If the regular
|
||||
expression matches more than once in a file name, only the first match
|
||||
is replaced.
|
||||
|
||||
For example, @kbd{% R ^.*$ @key{RET} x-\& @key{RET}} renames each
|
||||
selected file by prepending @samp{x-} to its name. The inverse of this,
|
||||
@ -809,15 +820,16 @@ matches that should span the whole filename.)
|
||||
Normally, the replacement process does not consider the files'
|
||||
directory names; it operates on the file name within the directory. If
|
||||
you specify a numeric argument of zero, then replacement affects the
|
||||
entire absolute file name including directory name. (Non-zero
|
||||
entire absolute file name including directory name. (A non-zero
|
||||
argument specifies the number of files to operate on.)
|
||||
|
||||
Often you will want to select the set of files to operate on using the
|
||||
same @var{regexp} that you will use to operate on them. To do this,
|
||||
mark those files with @kbd{% m @var{regexp} @key{RET}}, then use the
|
||||
same regular expression in the command to operate on the files. To make
|
||||
this easier, the @kbd{%} commands to operate on files use the last
|
||||
regular expression specified in any @kbd{%} command as a default.
|
||||
You may want to select the set of files to operate on using the same
|
||||
regexp @var{from} that you will use to operate on them. To do this,
|
||||
mark those files with @kbd{% m @var{from} @key{RET}}, then use the
|
||||
same regular expression in the command to operate on the files. To
|
||||
make this more convenient, the @kbd{%} commands to operate on files
|
||||
use the last regular expression specified in any @kbd{%} command as a
|
||||
default.
|
||||
|
||||
@node Comparison in Dired
|
||||
@section File Comparison with Dired
|
||||
@ -825,19 +837,20 @@ regular expression specified in any @kbd{%} command as a default.
|
||||
@cindex compare files (in Dired)
|
||||
|
||||
Here are two Dired commands that compare specified files using
|
||||
@code{diff}.
|
||||
@code{diff}. They show the output in a buffer using Diff mode
|
||||
(@pxref{Comparing Files}).
|
||||
|
||||
@table @kbd
|
||||
@item =
|
||||
@findex dired-diff
|
||||
@kindex = @r{(Dired)}
|
||||
Compare the current file (the file at point) with another file (the file
|
||||
at the mark) using the @code{diff} program (@code{dired-diff}). The
|
||||
file at the mark is the first argument of @code{diff}, and the file at
|
||||
point is the second argument. Use @kbd{C-@key{SPC}}
|
||||
Compare the current file (the file at point) with another file (the
|
||||
file at the mark) using the @code{diff} program (@code{dired-diff}).
|
||||
The file at the mark is the first argument of @code{diff}, and the
|
||||
file at point is the second argument. This refers to the ordinary
|
||||
Emacs mark, not Dired marks; use @kbd{C-@key{SPC}}
|
||||
(@code{set-mark-command}) to set the mark at the first file's line
|
||||
(@pxref{Setting Mark}), since @code{dired-diff} ignores the files marked
|
||||
with the Dired's @kbd{m} command.
|
||||
(@pxref{Setting Mark}).
|
||||
|
||||
@findex dired-backup-diff
|
||||
@kindex M-= @r{(Dired)}
|
||||
@ -845,7 +858,7 @@ with the Dired's @kbd{m} command.
|
||||
Compare the current file with its latest backup file
|
||||
(@code{dired-backup-diff}). If the current file is itself a backup,
|
||||
compare it with the file it is a backup of; this way, you can compare
|
||||
a file with any backup version of your choice.
|
||||
a file with any one of its backups.
|
||||
|
||||
The backup file is the first file given to @code{diff}.
|
||||
@end table
|
||||
@ -864,9 +877,8 @@ numeric argument when you run Dired, then you can specify these options
|
||||
in the minibuffer.) That produces a recursive directory listing showing
|
||||
all subdirectories at all levels.
|
||||
|
||||
But usually all the subdirectories are too many; usually you will
|
||||
prefer to include specific subdirectories only. You can do this with
|
||||
the @kbd{i} command:
|
||||
More often, you will want to show only specific subdirectories. You
|
||||
can do this with the @kbd{i} command:
|
||||
|
||||
@table @kbd
|
||||
@findex dired-maybe-insert-subdir
|
||||
@ -950,7 +962,7 @@ Move down to the next directory-file line (@code{dired-prev-dirline}).
|
||||
|
||||
@cindex hiding in Dired (Dired)
|
||||
@dfn{Hiding} a subdirectory means to make it invisible, except for its
|
||||
header line, via selective display (@pxref{Selective Display}).
|
||||
header line.
|
||||
|
||||
@table @kbd
|
||||
@item $
|
||||
@ -974,7 +986,8 @@ subdirectories far away.
|
||||
subdirectory. For example, the commands to operate on marked files
|
||||
ignore files in hidden directories even if they are marked. Thus you
|
||||
can use hiding to temporarily exclude subdirectories from operations
|
||||
without having to remove the markers.
|
||||
without having to remove the Dired marks on files in those
|
||||
subdirectories.
|
||||
|
||||
@node Dired Updating
|
||||
@section Updating the Dired Buffer
|
||||
@ -990,7 +1003,8 @@ part of the Dired buffer.
|
||||
Update the entire contents of the Dired buffer (@code{revert-buffer}).
|
||||
|
||||
@item l
|
||||
Update the specified files (@code{dired-do-redisplay}).
|
||||
Update the specified files (@code{dired-do-redisplay}). You specify the
|
||||
files for @kbd{l} in the same way as for file operations.
|
||||
|
||||
@item k
|
||||
Delete the specified @emph{file lines}---not the files, just the lines
|
||||
@ -1034,9 +1048,9 @@ current file as a last resort.
|
||||
|
||||
If you use @kbd{k} with a numeric prefix argument to kill the line
|
||||
for a file that is a directory, which you have inserted in the Dired
|
||||
buffer as a subdirectory, then this deletes that subdirectory from the
|
||||
buffer as well. Typing @kbd{C-u k} on the header line for a subdirectory
|
||||
is another way to delete a subdirectory from the Dired buffer.
|
||||
buffer as a subdirectory, it deletes that subdirectory from the buffer
|
||||
as well. Typing @kbd{C-u k} on the header line for a subdirectory
|
||||
also deletes the subdirectory from the Dired buffer.
|
||||
|
||||
The @kbd{g} command brings back any individual lines that you have
|
||||
killed in this way, but not subdirectories---you must use @kbd{i} to
|
||||
@ -1068,7 +1082,7 @@ flexibly by using the @code{find} utility to choose the files.
|
||||
@var{pattern}, and chooses all the files in @var{directory} or its
|
||||
subdirectories whose individual names match @var{pattern}.
|
||||
|
||||
The files thus chosen are displayed in a Dired buffer in which the
|
||||
The files thus chosen are displayed in a Dired buffer, in which the
|
||||
ordinary Dired commands are available.
|
||||
|
||||
@findex find-grep-dired
|
||||
@ -1101,10 +1115,10 @@ may need to change the value of this variable.
|
||||
@cindex file database (locate)
|
||||
@vindex locate-command
|
||||
@kbd{M-x locate} provides a similar interface to the @code{locate}
|
||||
program. @kbd{M-x locate-with-filter} is similar, but keeps only lines
|
||||
matching a given regular expression.
|
||||
program. @kbd{M-x locate-with-filter} is similar, but keeps only files
|
||||
whose names match a given regular expression.
|
||||
|
||||
These buffers don't work entirely like ordinary Dired buffers. File
|
||||
These buffers don't work entirely like ordinary Dired buffers: file
|
||||
operations work, but do not always automatically update the buffer.
|
||||
Reverting the buffer with @kbd{g} deletes all inserted subdirectories,
|
||||
and erases all flags and marks.
|
||||
@ -1131,104 +1145,26 @@ back to ordinary Dired mode.
|
||||
Apart from simply renaming files, you can move a file to another
|
||||
directory by typing in the new file name (either absolute or
|
||||
relative). To mark a file for deletion, delete the entire filename.
|
||||
To change the target of a symbolic link, just edit the target name
|
||||
displayed next to the link name.
|
||||
To change the target of a symbolic link, edit the link target name
|
||||
which appears next to the link name.
|
||||
|
||||
The rest of the text in the buffer, such as the file sizes and
|
||||
modification dates, is marked read-only, so you can't edit it.
|
||||
However, if you set @code{wdired-allow-to-change-permissions} to
|
||||
@code{t}, the file permission bits can also be edited. For example,
|
||||
you can change @samp{-rw-r--r--} to @samp{-rw-rw-rw-} to make a file
|
||||
@code{t}, you can edit the file permissions. For example, you can
|
||||
change @samp{-rw-r--r--} to @samp{-rw-rw-rw-} to make a file
|
||||
world-writable. These changes also take effect when you type @kbd{C-c
|
||||
C-c}.
|
||||
|
||||
@node Tumme
|
||||
@section Thumbnail and image file viewing and manipulation
|
||||
|
||||
@cindex tumme mode
|
||||
|
||||
Tumme provides for simple viewing of thumbnails of image files. It
|
||||
provides viewing of the original file, sized or in full size, inside
|
||||
Emacs or in an external viewer.
|
||||
|
||||
Tumme aims to be both easy to use for a beginner but also powerful
|
||||
and useful to an experienced user.
|
||||
|
||||
The quickest way to try out Tumme is to use the command
|
||||
@code{tumme}. It will prompt for a directory where there are images
|
||||
files. All images in that directory will get thumbnail files created
|
||||
for them, and the thumbnails will be displayed in the ``thumbnail
|
||||
buffer''.
|
||||
|
||||
If the directory contains many image files and becayse thumbnails
|
||||
are created on the fly before they can be displayed, the above command
|
||||
might take a long time, especially the first time (consecutive
|
||||
viewings will use the cached thumbnail files). Also, if the number of
|
||||
image files is higher than @code{tumme-show-all-from-dir-max-files},
|
||||
the command will be aborted. To work around this you can instead mark
|
||||
the files you want to look at, using @kbd{m} as usual in Dired, and
|
||||
then type @kbd{C-t d} (@code{tumme-display-thumbs}).
|
||||
|
||||
Regardless of which command you chose to display the thumbnails, a
|
||||
new buffer will open up, displaying thumbnail images of the files that
|
||||
were marked in dired. The new buffer will be the active one.
|
||||
|
||||
With point in the thumbnail buffer, type @kbd{RET}
|
||||
(@code{tumme-display-thumbnail-original-image}) to display a sized
|
||||
version of it in another window. The image will be sized to fit the
|
||||
window. Use the arrow keys to move around in the buffer. For easy
|
||||
browing, type @kbd{SPC} (@code{tumme-display-next-thumbnail-original})
|
||||
to advance and display the next image. Typing @kbd{DEL}
|
||||
(@code{tumme-display-previous-thumbnail-original}) backs up to the
|
||||
previous thumbnail and displays that instead.
|
||||
|
||||
If you want to see the image in its original size, either provide a
|
||||
prefix argument (@kbd{C-u}) before pressing @kbd{RET}, or type
|
||||
@kbd{C-return} (@code{tumme-thumbnail-display-external}) to display
|
||||
the image in an external viewer. To use the latter,
|
||||
@code{tumme-external-viewer} must be configured.
|
||||
|
||||
If you find in image that you want to delete, type @kbd{d}
|
||||
(@code{tumme-flag-thumb-original-file}) and the file will be flagged
|
||||
for deletion in the dired buffer. If you just want visually to delete
|
||||
the thumbnail image from the thumbnail buffer, type @kbd{C-d}
|
||||
(@code{tumme-delete-char}).
|
||||
|
||||
More advanced features include commands for using ``tags''. ``Tag''
|
||||
is just another word for ``keyword'', ``label'' or ``category''. In
|
||||
short, it is meta data used to categorize an image file. Commands
|
||||
exist to add tags for one or many image files from dired, to mark
|
||||
files having a certain tag in Dired and to remove tags from files.
|
||||
The tags put on image files are stored in a database file (currently a
|
||||
plain text file).
|
||||
|
||||
To tag image files, mark them in the dired buffer and type @kbd{C-t
|
||||
t} (@code{tumme-tag-files}). You will be prompted for a tag. To mark
|
||||
files having a certain tag, type @kbd{C-t f}
|
||||
(@code{tumme-mark-tagged-files}). After marking image files with a
|
||||
certain tag, they can be viewed as explained earlier, by typing
|
||||
@key{C-t d}.
|
||||
|
||||
You can also tag a file from the thumbnail buffer by typing @kbd{t
|
||||
t} and remove it by typing @kbd{t r}. There is also a special ``tag''
|
||||
called ``comment'' for each file (it is not a tag in the exact same
|
||||
sense as the other tags, it is handled slightly different). That is
|
||||
used to enter a comment or description about the image. You comment a
|
||||
file from the thumbnail buffer by typing @kbd{c}. You will be
|
||||
prompted for a comment. Comments can also be added from Dired, and
|
||||
then also to multiple files at once, by typing @kbd{C-t c}
|
||||
(@code{tumme-dired-comment-files}).
|
||||
|
||||
Tumme also provides simple image manipulation commands, like
|
||||
rotating thumbnails and original image files. In the thumbnail
|
||||
buffer, type @kbd{L} to rotate the original image 90 degrees anti
|
||||
clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This
|
||||
rotation will be done lossless (the image quality will not be reduced)
|
||||
and needs an external utility called JpegTRAN to work.
|
||||
|
||||
@node Misc Dired Features
|
||||
@section Other Dired Features
|
||||
|
||||
@kindex + @r{(Dired)}
|
||||
@findex dired-create-directory
|
||||
An unusual Dired file-operation command is @kbd{+}
|
||||
(@code{dired-create-directory}). This command reads a directory name,
|
||||
and creates the directory if it does not already exist.
|
||||
|
||||
@cindex Adding to the kill ring in Dired.
|
||||
@kindex w @r{(Dired)}
|
||||
@findex dired-copy-filename-as-kill
|
||||
@ -1236,16 +1172,18 @@ and needs an external utility called JpegTRAN to work.
|
||||
names of the marked (or next @var{n}) files into the kill ring, as if
|
||||
you had killed them with @kbd{C-w}. The names are separated by a space.
|
||||
|
||||
With a zero prefix argument, this uses the absolute file name of
|
||||
each marked file. With just @kbd{C-u} as the prefix argument, it uses
|
||||
file names relative to the Dired buffer's default directory. (This
|
||||
can still contain slashes if in a subdirectory.) As a special case,
|
||||
if point is on a directory headerline, @kbd{w} gives you the absolute
|
||||
name of that directory. Any prefix argument or marked files are
|
||||
ignored in this case.
|
||||
|
||||
The main purpose of this command is so that you can yank the file
|
||||
names into arguments for other Emacs commands. It also displays what
|
||||
was pushed onto the kill ring, so you can use it to display the list
|
||||
of currently marked files in the echo area. With a zero prefix
|
||||
argument, this uses the absolute file name of each marked file. With
|
||||
just @kbd{C-u} as the prefix argument, it uses file names relative to
|
||||
the Dired buffer's default directory. (This can still contain slashes
|
||||
if in a subdirectory.) As a special case, if point is on a directory
|
||||
headerline, @kbd{w} gives you the absolute name of that directory.
|
||||
Any prefix argument or marked files are ignored in this case.
|
||||
it added to the kill ring, so you can use it to display the list of
|
||||
currently marked files in the echo area.
|
||||
|
||||
@findex dired-compare-directories
|
||||
The command @kbd{M-x dired-compare-directories} is used to compare
|
||||
|
@ -201,6 +201,7 @@ Advanced Features
|
||||
"recursive editing level".
|
||||
* Emulation:: Emulating some other editors with Emacs.
|
||||
* Hyperlinking:: Following links in buffers.
|
||||
* Thumbnails:: Browsing images using thumbnails.
|
||||
* Dissociated Press:: Dissociating text for fun.
|
||||
* Amusements:: Various games and hacks.
|
||||
* Customization:: Modifying the behavior of Emacs.
|
||||
|
@ -50,7 +50,7 @@ license to the document, as described in section 6 of the license.
|
||||
\begin{document}
|
||||
|
||||
% Adjust ../Makefile.in if you change the following line:
|
||||
\newcommand{\gnusversionname}{Gnus v5.10.6}
|
||||
\newcommand{\gnusversionname}{Gnus v5.11}
|
||||
\newcommand{\gnuschaptername}{}
|
||||
\newcommand{\gnussectionname}{}
|
||||
|
||||
@ -360,7 +360,7 @@ spool or your mbox file. All at the same time, if you want to push your
|
||||
luck.
|
||||
|
||||
@c Adjust ../Makefile.in if you change the following line:
|
||||
This manual corresponds to Gnus v5.10.6.
|
||||
This manual corresponds to Gnus v5.11.
|
||||
|
||||
@end ifinfo
|
||||
|
||||
@ -17540,16 +17540,16 @@ group have to be alive (i.e., subscribed or unsubscribed). Killed or
|
||||
zombie groups can't be component groups for @code{nnvirtual} groups.
|
||||
|
||||
@vindex nnvirtual-always-rescan
|
||||
If the @code{nnvirtual-always-rescan} is non-@code{nil},
|
||||
@code{nnvirtual} will always scan groups for unread articles when
|
||||
entering a virtual group. If this variable is @code{nil} (which is the
|
||||
default) and you read articles in a component group after the virtual
|
||||
group has been activated, the read articles from the component group
|
||||
will show up when you enter the virtual group. You'll also see this
|
||||
effect if you have two virtual groups that have a component group in
|
||||
common. If that's the case, you should set this variable to @code{t}.
|
||||
Or you can just tap @code{M-g} on the virtual group every time before
|
||||
you enter it---it'll have much the same effect.
|
||||
If the @code{nnvirtual-always-rescan} variable is non-@code{nil} (which
|
||||
is the default), @code{nnvirtual} will always scan groups for unread
|
||||
articles when entering a virtual group. If this variable is @code{nil}
|
||||
and you read articles in a component group after the virtual group has
|
||||
been activated, the read articles from the component group will show up
|
||||
when you enter the virtual group. You'll also see this effect if you
|
||||
have two virtual groups that have a component group in common. If
|
||||
that's the case, you should set this variable to @code{t}. Or you can
|
||||
just tap @code{M-g} on the virtual group every time before you enter
|
||||
it---it'll have much the same effect.
|
||||
|
||||
@code{nnvirtual} can have both mail and news groups as component groups.
|
||||
When responding to articles in @code{nnvirtual} groups, @code{nnvirtual}
|
||||
|
@ -512,11 +512,11 @@ the help text. @key{TAB} (@code{help-next-ref}) moves point down to the
|
||||
next cross reference. Use @kbd{S-@key{TAB}} to move point up to the
|
||||
previous cross reference (@code{help-previous-ref}).
|
||||
|
||||
To view all documentation about a symbol, whether quoted or not, move
|
||||
point over the symbol and type @kbd{C-c C-c}
|
||||
You can view all documentation about any symbol name that appears in
|
||||
the text, by moving point to the symbol name and typing @kbd{C-c C-c}
|
||||
(@code{help-follow-symbol}). This shows all available documentation
|
||||
about the symbol as a variable, function or face. Just like for
|
||||
quoted cross references, you can use @kbd{C-c C-b} to retrace your steps.
|
||||
about the symbol as a variable, function and/or face. @kbd{C-c C-b}
|
||||
works in this case also, to retrace your steps.
|
||||
|
||||
@node Misc Help
|
||||
@section Other Help Commands
|
||||
|
@ -70,7 +70,7 @@ Message mode buffers.
|
||||
@c Adjust ../Makefile.in if you change the following lines:
|
||||
Message is distributed with Gnus. The Gnus distribution
|
||||
@c
|
||||
corresponding to this manual is Gnus v5.10.6.
|
||||
corresponding to this manual is Gnus v5.11.
|
||||
|
||||
|
||||
@node Interface
|
||||
|
202
man/misc.texi
202
man/misc.texi
@ -9,9 +9,10 @@
|
||||
else: reading netnews, running shell commands and shell subprocesses,
|
||||
using a single shared Emacs for utilities that expect to run an editor
|
||||
as a subprocess, printing hardcopy, sorting text, narrowing display to
|
||||
part of the buffer, editing double-column files and binary files, saving
|
||||
an Emacs session for later resumption, emulating other editors, and
|
||||
various diversions and amusements.
|
||||
part of the buffer, editing double-column files and binary files,
|
||||
saving an Emacs session for later resumption, following hyperlinks,
|
||||
browsing images, emulating other editors, and various diversions and
|
||||
amusements.
|
||||
|
||||
@end iftex
|
||||
|
||||
@ -49,15 +50,15 @@ To start Gnus, type @kbd{M-x gnus @key{RET}}.
|
||||
@node Buffers of Gnus
|
||||
@subsection Gnus Buffers
|
||||
|
||||
As opposed to most normal Emacs packages, Gnus uses a number of
|
||||
different buffers to display information and to receive commands. The
|
||||
three buffers users spend most of their time in are the @dfn{group
|
||||
buffer}, the @dfn{summary buffer} and the @dfn{article buffer}.
|
||||
Unlike most Emacs packages, Gnus uses several buffers to display
|
||||
information and to receive commands. The three Gnus buffers users use
|
||||
most are the @dfn{group buffer}, the @dfn{summary buffer} and the
|
||||
@dfn{article buffer}.
|
||||
|
||||
The @dfn{group buffer} contains a list of groups. This is the first
|
||||
buffer Gnus displays when it starts up. It normally displays only the
|
||||
groups to which you subscribe and that contain unread articles. Use
|
||||
this buffer to select a specific group.
|
||||
The @dfn{group buffer} contains a list of newsgroups. This is the
|
||||
first buffer Gnus displays when it starts up. It normally displays
|
||||
only the groups to which you subscribe and that contain unread
|
||||
articles. Use this buffer to select a specific group.
|
||||
|
||||
The @dfn{summary buffer} lists one line for each article in a single
|
||||
group. By default, the author, the subject and the line number are
|
||||
@ -67,9 +68,10 @@ in the group buffer, and is killed when you exit the group. Use this
|
||||
buffer to select an article.
|
||||
|
||||
The @dfn{article buffer} displays the article. In normal Gnus usage,
|
||||
you don't select this buffer---all useful article-oriented commands work
|
||||
in the summary buffer. But you can select the article buffer, and
|
||||
execute all Gnus commands from that buffer, if you want to.
|
||||
you see this buffer but you don't select it---all useful
|
||||
article-oriented commands work in the summary buffer. But you can
|
||||
select the article buffer, and execute all Gnus commands from that
|
||||
buffer, if you want to.
|
||||
|
||||
@node Gnus Startup
|
||||
@subsection When Gnus Starts Up
|
||||
@ -111,9 +113,9 @@ displayed in the article buffer in a large window, below the summary
|
||||
buffer in its small window.
|
||||
@end enumerate
|
||||
|
||||
Each Gnus buffer has its own special commands; however, the meanings
|
||||
of any given key in the various Gnus buffers are usually analogous, even
|
||||
if not identical. Here are commands for the group and summary buffers:
|
||||
Each Gnus buffer has its own special commands; the meanings of any
|
||||
given key in the various Gnus buffers are usually analogous, even if
|
||||
not identical. Here are commands for the group and summary buffers:
|
||||
|
||||
@table @kbd
|
||||
@kindex q @r{(Gnus Group mode)}
|
||||
@ -315,9 +317,6 @@ processes; it can also run a shell interactively with input and output
|
||||
to an Emacs buffer named @samp{*shell*} or run a shell inside a terminal
|
||||
emulator window.
|
||||
|
||||
There is a shell implemented entirely in Emacs, documented in a separate
|
||||
manual. @xref{Top,Eshell,Eshell, eshell, Eshell: The Emacs Shell}.
|
||||
|
||||
@table @kbd
|
||||
@item M-! @var{cmd} @key{RET}
|
||||
Run the shell command line @var{cmd} and display the output
|
||||
@ -333,11 +332,12 @@ You can then give commands interactively.
|
||||
Run a subshell with input and output through an Emacs buffer.
|
||||
You can then give commands interactively.
|
||||
Full terminal emulation is available.
|
||||
@item M-x eshell
|
||||
@findex eshell
|
||||
Start the Emacs shell.
|
||||
@end table
|
||||
|
||||
@kbd{M-x eshell} invokes a shell implemented entirely in Emacs. It
|
||||
is documented in a separate manual. @xref{Top,Eshell,Eshell, eshell,
|
||||
Eshell: The Emacs Shell}.
|
||||
|
||||
@menu
|
||||
* Single Shell:: How to run one shell command and return.
|
||||
* Interactive Shell:: Permanent shell taking input via Emacs.
|
||||
@ -379,37 +379,38 @@ uncompressed equivalent of @file{foo.gz} into the current buffer.
|
||||
For a synchronous shell command, @code{shell-command} returns the
|
||||
command's exit status (0 means success), when it is called from a Lisp
|
||||
program. You do not get any status information for an asynchronous
|
||||
command, since it hasn't finished yet.
|
||||
command, since it hasn't finished yet when @code{shell-command} returns.
|
||||
|
||||
@kindex M-|
|
||||
@findex shell-command-on-region
|
||||
@kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!} but
|
||||
passes the contents of the region as the standard input to the shell
|
||||
command, instead of no input. If a numeric argument is used, meaning
|
||||
insert the output in the current buffer, then the old region is deleted
|
||||
first and the output replaces it as the contents of the region. It
|
||||
returns the command's exit status when it is called from a Lisp program.
|
||||
command, instead of no input. With a numeric argument, meaning insert
|
||||
the output in the current buffer, it deletes the old region and the
|
||||
output replaces it as the contents of the region. It returns the
|
||||
command's exit status, like @kbd{M-!}.
|
||||
|
||||
One use for @kbd{M-|} is to run @code{gpg} to see what keys are in
|
||||
the buffer. For instance, if the buffer contains a GPG key, type
|
||||
@kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents
|
||||
to the @code{gpg} program. That program will ignore everything except
|
||||
the encoded keys, and will output a list of the keys it contains.
|
||||
@kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents to
|
||||
the @code{gpg} program. That program will ignore everything except
|
||||
the encoded keys, and will output a list of the keys the buffer
|
||||
contains.
|
||||
|
||||
@vindex shell-file-name
|
||||
Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify the
|
||||
shell to use. This variable is initialized based on your @env{SHELL}
|
||||
environment variable when Emacs is started. If the file name does not
|
||||
specify a directory, the directories in the list @code{exec-path} are
|
||||
searched; this list is initialized based on the environment variable
|
||||
@env{PATH} when Emacs is started. Your @file{.emacs} file can override
|
||||
either or both of these default initializations.@refill
|
||||
Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify
|
||||
the shell to use. This variable is initialized based on your
|
||||
@env{SHELL} environment variable when Emacs is started. If the file
|
||||
name is relative, Emacs searches the directories in the list
|
||||
@code{exec-path}; this list is initialized based on the environment
|
||||
variable @env{PATH} when Emacs is started. Your @file{.emacs} file
|
||||
can override either or both of these default initializations.
|
||||
|
||||
Both @kbd{M-!} and @kbd{M-|} wait for the shell command to complete,
|
||||
unless you end the command with @samp{&} to make it asynchronous. To
|
||||
stop waiting, type @kbd{C-g} to quit; that terminates the shell
|
||||
command with the signal @code{SIGINT}---the same signal that @kbd{C-c}
|
||||
normally generates in the shell. Emacs waits until the command
|
||||
normally generates in the shell. Emacs then waits until the command
|
||||
actually terminates. If the shell command doesn't stop (because it
|
||||
ignores the @code{SIGINT} signal), type @kbd{C-g} again; this sends
|
||||
the command a @code{SIGKILL} signal which is impossible to ignore.
|
||||
@ -422,10 +423,11 @@ buffer regardless of whether it is visible in a window.
|
||||
@kbd{C-x @key{RET} c} immediately beforehand. @xref{Communication Coding}.
|
||||
|
||||
@vindex shell-command-default-error-buffer
|
||||
Error output from the command is normally intermixed with the regular
|
||||
output. If you set the variable
|
||||
@code{shell-command-default-error-buffer} to a string, which is a buffer
|
||||
name, error output is inserted before point in the buffer of that name.
|
||||
Error output from these commands is normally intermixed with the
|
||||
regular output. But if the variable
|
||||
@code{shell-command-default-error-buffer} has a string as value, and
|
||||
it's the name of a buffer, @kbd{M-!} and @kbd{M-|} insert error output
|
||||
before point in that buffer.
|
||||
|
||||
@node Interactive Shell
|
||||
@subsection Interactive Inferior Shell
|
||||
@ -456,8 +458,8 @@ previous input lines in the buffer. @xref{Faces}.
|
||||
prefix argument (e.g. @kbd{C-u M-x shell}), which will read a buffer
|
||||
name and create (or reuse) a subshell in that buffer. You can also
|
||||
rename the @samp{*shell*} buffer using @kbd{M-x rename-uniquely}, then
|
||||
create a new @samp{*shell*} buffer using plain @kbd{M-x shell}. All the
|
||||
subshells in different buffers run independently and in parallel.
|
||||
create a new @samp{*shell*} buffer using plain @kbd{M-x shell}.
|
||||
Subshells in different buffers run independently and in parallel.
|
||||
|
||||
@vindex explicit-shell-file-name
|
||||
@cindex environment variables for subshells
|
||||
@ -479,9 +481,10 @@ from. For example, if you use bash, the file sent to it is
|
||||
@file{~/.emacs_bash}.
|
||||
|
||||
To specify a coding system for the shell, you can use the command
|
||||
@kbd{C-x @key{RET} c} immediately before @kbd{M-x shell}. You can also
|
||||
specify a coding system after starting the shell by using @kbd{C-x
|
||||
@key{RET} p} in the shell buffer. @xref{Communication Coding}.
|
||||
@kbd{C-x @key{RET} c} immediately before @kbd{M-x shell}. You can
|
||||
also change the coding system for a running subshell by typing
|
||||
@kbd{C-x @key{RET} p} in the shell buffer. @xref{Communication
|
||||
Coding}.
|
||||
|
||||
@cindex @env{EMACS} environment variable
|
||||
Unless the environment variable @env{EMACS} is already defined,
|
||||
@ -505,10 +508,10 @@ of the special key bindings of Shell mode:
|
||||
@kindex RET @r{(Shell mode)}
|
||||
@findex comint-send-input
|
||||
At end of buffer send line as input; otherwise, copy current line to
|
||||
end of buffer and send it (@code{comint-send-input}). When a line is
|
||||
copied, any prompt at the beginning of the line (text output by
|
||||
programs preceding your input) is omitted. @xref{Shell Prompts}, for
|
||||
how Shell mode recognizes prompts.
|
||||
end of buffer and send it (@code{comint-send-input}). Copying a line
|
||||
in this way omits any prompt at the beginning of the line (text output
|
||||
by programs preceding your input). @xref{Shell Prompts}, for how
|
||||
Shell mode recognizes prompts.
|
||||
|
||||
@item @key{TAB}
|
||||
@kindex TAB @r{(Shell mode)}
|
||||
@ -2185,7 +2188,7 @@ not use it.
|
||||
key bindings.
|
||||
@end table
|
||||
|
||||
@node Hyperlinking, Dissociated Press, Emulation, Top
|
||||
@node Hyperlinking, Thumbnails, Emulation, Top
|
||||
@section Hyperlinking and Navigation Features
|
||||
|
||||
@cindex hyperlinking
|
||||
@ -2351,7 +2354,77 @@ Display a menu of files and URLs mentioned in current buffer, then
|
||||
find the one you select (@code{ffap-menu}).
|
||||
@end table
|
||||
|
||||
@node Dissociated Press, Amusements, Hyperlinking, Top
|
||||
@node Thumbnails, Dissociated Press, Hyperlinking, Top
|
||||
@section Viewing Images as Thumbnails
|
||||
@cindex tumme mode
|
||||
@cindex thumbnails
|
||||
|
||||
Tumme is a facility for browsing image files. It provides viewing
|
||||
of the original file, either as a thumbnail or in full size, inside
|
||||
Emacs or in an external viewer.
|
||||
|
||||
To enter Tumme, type @kbd{M-x tumme}. It prompts for a directory;
|
||||
specify one that has images files. This creates thumbnails for all
|
||||
the images in that directory, and displays them all in the ``thumbnail
|
||||
buffer''. This takes a long time if the directory contains many image
|
||||
files, and it won't operate if the number of image files exceeds
|
||||
@code{tumme-show-all-from-dir-max-files}.
|
||||
|
||||
@kindex C-t d @r{(Tumme)}
|
||||
@findex tumme-display-thumbs
|
||||
You can also enter Tumme through Dired. Mark the image files you
|
||||
want to look at, using @kbd{m} as usual, then type @kbd{C-t d}
|
||||
(@code{tumme-display-thumbs}). This too creates and switches to
|
||||
a buffer containing thumbnails, corresponding to the marked files.
|
||||
|
||||
With point in the thumbnail buffer, type @kbd{RET}
|
||||
(@code{tumme-display-thumbnail-original-image}) to display a sized
|
||||
version of it in another window. This sizes the image to fit the
|
||||
window. Use the arrow keys to move around in the buffer. For easy
|
||||
browing, type @kbd{SPC} (@code{tumme-display-next-thumbnail-original})
|
||||
to advance and display the next image. Typing @kbd{DEL}
|
||||
(@code{tumme-display-previous-thumbnail-original}) backs up to the
|
||||
previous thumbnail and displays that instead.
|
||||
|
||||
@vindex tumme-external-viewer
|
||||
To view and the image in its original size, either provide a prefix
|
||||
argument (@kbd{C-u}) before pressing @kbd{RET}, or type @kbd{C-@key{RET}}
|
||||
(@code{tumme-thumbnail-display-external}) to display the image in an
|
||||
external viewer. You must first configure
|
||||
@code{tumme-external-viewer}.
|
||||
|
||||
You can delete images through Tumme also. Type @kbd{d}
|
||||
(@code{tumme-flag-thumb-original-file}) to flag the image file for
|
||||
deletion in the Dired buffer. You can also delete the thumbnail image
|
||||
from the thumbnail buffer with @kbd{C-d} (@code{tumme-delete-char}).
|
||||
|
||||
More advanced features include @dfn{image tags}, which are metadata
|
||||
used to categorize image files. The tags are stored in a plain text
|
||||
file.
|
||||
@c ??? What is the file name?
|
||||
|
||||
To tag image files, mark them in the dired buffer and type @kbd{C-t
|
||||
t} (@code{tumme-tag-files}). You will be prompted for a tag. To mark
|
||||
files having a certain tag, type @kbd{C-t f}
|
||||
(@code{tumme-mark-tagged-files}). After marking image files with a
|
||||
certain tag, you can use @kbd{C-t d} to view them.
|
||||
|
||||
@c ??? Remove what? The tag?
|
||||
You can also tag a file from the thumbnail buffer by typing @kbd{t
|
||||
t} and remove it by typing @kbd{t r}. There is also a special ``tag''
|
||||
called ``comment'' for each file (it is not a tag in the exact same
|
||||
sense as the other tags, it is handled slightly different). That is
|
||||
used to enter a comment or description about the image. You comment a
|
||||
file from the thumbnail buffer by typing @kbd{c}. You will be
|
||||
prompted for a comment. Type @kbd{C-t c} to add a comment from Dired
|
||||
(@code{tumme-dired-comment-files}).
|
||||
|
||||
Tumme also provides simple image manipulation. In the thumbnail
|
||||
buffer, type @kbd{L} to rotate the original image 90 degrees anti
|
||||
clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This
|
||||
rotation is lossless, and uses an external utility called JpegTRAN.
|
||||
|
||||
@node Dissociated Press, Amusements, Thumbnails, Top
|
||||
@section Dissociated Press
|
||||
|
||||
@findex dissociated-press
|
||||
@ -2376,12 +2449,13 @@ That is, if it has just output `president' and then decides to jump
|
||||
to a different point in the file, it might spot the `ent' in `pentagon'
|
||||
and continue from there, producing `presidentagon'.@footnote{This
|
||||
dissociword actually appeared during the Vietnam War, when it was very
|
||||
appropriate.} Long sample texts produce the best results.
|
||||
appropriate. Bush has made it appropriate again.} Long sample texts
|
||||
produce the best results.
|
||||
|
||||
@cindex againformation
|
||||
A positive argument to @kbd{M-x dissociated-press} tells it to operate
|
||||
character by character, and specifies the number of overlap characters. A
|
||||
negative argument tells it to operate word by word and specifies the number
|
||||
negative argument tells it to operate word by word, and specifies the number
|
||||
of overlap words. In this mode, whole words are treated as the elements to
|
||||
be permuted, rather than characters. No argument is equivalent to an
|
||||
argument of two. For your againformation, the output goes only into the
|
||||
@ -2390,13 +2464,13 @@ buffer @samp{*Dissociation*}. The buffer you start with is not changed.
|
||||
@cindex Markov chain
|
||||
@cindex ignoriginal
|
||||
@cindex techniquitous
|
||||
Dissociated Press produces nearly the same results as a Markov chain
|
||||
based on a frequency table constructed from the sample text. It is,
|
||||
however, an independent, ignoriginal invention. Dissociated Press
|
||||
Dissociated Press produces results fairly like those of a Markov
|
||||
chain based on a frequency table constructed from the sample text. It
|
||||
is, however, an independent, ignoriginal invention. Dissociated Press
|
||||
techniquitously copies several consecutive characters from the sample
|
||||
between random choices, whereas a Markov chain would choose randomly for
|
||||
each word or character. This makes for more plausible sounding results,
|
||||
and runs faster.
|
||||
between random choices, whereas a Markov chain would choose randomly
|
||||
for each word or character. This makes for more plausible sounding
|
||||
results, and runs faster.
|
||||
|
||||
@cindex outragedy
|
||||
@cindex buggestion
|
||||
@ -2405,7 +2479,7 @@ and runs faster.
|
||||
@cindex developediment
|
||||
@cindex userenced
|
||||
It is a mustatement that too much use of Dissociated Press can be a
|
||||
developediment to your real work. Sometimes to the point of outragedy.
|
||||
developediment to your real work, sometimes to the point of outragedy.
|
||||
And keep dissociwords out of your documentation, if you want it to be well
|
||||
userenced and properbose. Have fun. Your buggestions are welcome.
|
||||
|
||||
@ -2429,7 +2503,7 @@ which plays the game Go Moku with you.
|
||||
@findex mpuz
|
||||
@findex 5x5
|
||||
@cindex puzzles
|
||||
@kbd{M-x blackbox}, @kbd{M-x mpuz} and @kbd{M-x 5x5} are kinds of puzzles.
|
||||
@kbd{M-x blackbox}, @kbd{M-x mpuz} and @kbd{M-x 5x5} are puzzles.
|
||||
@code{blackbox} challenges you to determine the location of objects
|
||||
inside a box by tomography. @code{mpuz} displays a multiplication
|
||||
puzzle with letters standing for digits in a code that you must
|
||||
|
@ -1,3 +1,7 @@
|
||||
2006-04-01 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* configure: Regenerated.
|
||||
|
||||
2006-03-31 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* xfns.c (xg_set_icon): Delete superfluous UNGCPRO.
|
||||
|
@ -1,8 +1,8 @@
|
||||
/* src/config.in. Generated from configure.in by autoheader. */
|
||||
|
||||
/* GNU Emacs site configuration template file.
|
||||
Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005,
|
||||
2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user