]> code.delx.au - gnu-emacs/blobdiff - man/faq.texi
(Editing Abbrevs): Mention system abbrevs.
[gnu-emacs] / man / faq.texi
index a2ec12f64085ccc4d528d85a157b0b857d967cdd..5ba473252717ab3469773ba0f28dc7cc6a3d5c4c 100644 (file)
@@ -1146,16 +1146,28 @@ and on @code{xterm} with @kbd{emacs -nw}.
 @cindex Emacs 22, new features in
 @cindex Recently introduced features
 
-@c FIXME: Improve this node before the 22.1 release.
 @cindex Default features
-Font-lock mode, auto-compression mode, and file name shadow mode are now
-enabled by default.  It is now possible to follow links with
-@kbd{mouse-1}.
-
-@cindex Supported systems
-Emacs 22 features support for GNU/Linux systems on S390 and X86-64
-machines, as well as support for the Mac OS X and Cygwin operating
-systems.
+Font Lock mode, auto-compression mode, and file name shadow mode are now
+enabled by default.  On graphics displays it is now possible to follow
+links with @kbd{mouse-1}, and the modeline of the selected window is now
+highlighted.  Window fringes are now customizable.  The minibuffer
+prompt is now displayed in a distinct face.
+
+Emacs now reads abbrev definitions automatically at startup.  The
+maximum size of buffers has been doubled and is now 256M on 32-bit
+machines.  Grep mode is now separate from Compilation mode and has many
+new specific options and commands.
+
+The original Emacs macro system has been replaced by the new Kmacro
+package, which provides many new commands and features and a simple
+interface that uses the function keys F3 and F4.  Macros are now stored
+in a macro ring, and can be debugged and edited interactively.
+
+The GUD (Grand Unified Debugger) package can now be used with a full
+graphical user interface to the debugger which provides many features
+found in traditional development environments, making it easy to
+manipulate breakpoints, add watch points, display the call stack, etc.
+Breakpoints are now displayed in the source buffer.
 
 @cindex GTK+ Toolkit
 @cindex Drag-and-drop
@@ -1164,15 +1176,39 @@ Emacs can now be built with GTK+ widgets, and supports drag-and-drop
 operation on X.  Mouse wheel support is now enabled by default.
 
 @cindex New modes
-Many new modes and packages have been included in Emacs, such as Leim,
-Calc, Tramp and URL, as well as IDO, CUA, rcirc, ERC, conf-mode,
-python-mode, table, tumme, SES, ruler, Flymake, Org, PGG, etc.
+Many new modes and packages have been included in Emacs, such as Calc,
+Tramp and URL, as well as IDO, CUA, rcirc, ERC, conf-mode, python-mode,
+table, tumme, SES, ruler, Flymake, Org, PGG, wdired, t-mouse, longlines,
+dns-mode, savehist, Password, Printing, Reveal, etc.
+
+@cindex Multilingual Environment
+Leim is now part of Emacs.  Unicode support has been much improved, and
+the following input methods have been added: belarusian, bulgarian-bds,
+bulgarian-phonetic, chinese-sisheng, croatian, dutch, georgian,
+latin-alt-postfix, latin-postfix, latin-prefix, latvian-keyboard,
+lithuanian-numeric, lithuanian-keyboard, malayalam-inscript, rfc1345,
+russian-computer, sgml, slovenian, tamil-inscript ucs,
+ukrainian-computer, vietnamese-telex, and welsh.
+
+The following language environment have also been added: Belarusian,
+Bulgarian, Chinese-EUC-TW, Croatian, French, Georgian, Italian, Latin-6,
+Latin-7, Latvian, Lithuanian, Malayalam, Russian, Russian, Slovenian,
+Swedish, Tajik, Tamil, UTF-8, Ukrainian, Ukrainian, Welsh, and
+Windows-1255.
+
+@cindex Supported systems
+Emacs 22 features support for GNU/Linux systems on S390 and x86-64
+machines, as well as support for the Mac OS X and Cygwin operating
+systems.
 
 @cindex Documentation
 @cindex Emacs Lisp Manual
 In addition, Emacs 22 now includes the Emacs Lisp Reference Manual
 (@pxref{Emacs Lisp documentation}) and the Emacs Lisp Intro.
 
+Many other changes have been made in Emacs 22, use @kbd{C-h n} to get a
+full list.
+
 @c ------------------------------------------------------------
 @node    Common requests, Bugs and problems, Status of Emacs, Top
 @chapter Common requests
@@ -1346,7 +1382,7 @@ initialization disables it.) Note that Emacs will not display the line
 number if the buffer's size in bytes is larger than the value of the
 variable @code{line-number-display-limit}.
 
-As of Emacs 20, you can similarly display the current column with
+You can similarly display the current column with
 @kbd{M-x column-number-mode}, or by putting the form
 
 @lisp
@@ -2147,7 +2183,7 @@ forms in a file.  (To do this from Lisp use the function @code{load}
 instead.)
 
 The functions @code{load-library}, @code{eval-region},
-@code{eval-current-buffer}, @code{require}, and @code{autoload} are also
+@code{eval-buffer}, @code{require}, and @code{autoload} are also
 useful; see @ref{Emacs Lisp documentation}, if you want to learn more
 about them.
 
@@ -2229,7 +2265,7 @@ otherwise.  @inforef{Frame Commands, Frame Commands, emacs}.
 @cindex Regexps
 @cindex Regular expressions
 @cindex Differences between Unix and Emacs regexps
-@cindex Unix regeps, differences from Emacs
+@cindex Unix regexps, differences from Emacs
 @cindex Text strings, putting regexps in
 
 @inforef{Regexp Backslash, Regexp Backslash, emacs}.
@@ -2261,15 +2297,35 @@ is actually typical for regexp syntax.)
 @cindex Replacing strings across files
 @cindex Multiple files, replacing across
 @cindex Files, replacing strings across multiple
+@cindex Recursive search/replace operations
 
-The ``tags'' feature of Emacs includes the command
-@code{tags-query-replace} which performs a query-replace across all the
-files mentioned in the @file{TAGS} file.  @inforef{Tags Search, Tags Search,
-emacs}.
+As of Emacs 19.29, Dired mode (@kbd{M-x dired @key{RET}}, or @kbd{C-x
+d}) supports the command @code{dired-do-query-replace} (@kbd{Q}), which
+allows users to replace regular expressions in multiple files.
+
+You can use this command to perform search/replace operations on
+multiple files by following the following steps:
+
+@itemize @bullet
+@item
+Assemble a list of files you want to operate on with either
+@code{find-dired}, @code{find-name-dired} or @code{find-grep-dired}.
 
-As of Emacs 19.29, Dired mode (@kbd{M-x dired @key{RET}}, or @kbd{C-x d})
-supports the command @code{dired-do-query-replace} (@kbd{Q}), which allows
-users to replace regular expressions in multiple files.
+@item
+Mark all files in the resulting Dired buffer using @kbd{t}.
+
+@item
+Use @kbd{Q} to start a @code{query-replace-regexp} session on the marked
+files.
+
+@item
+To accept all replacements in each file, hit @kbd{!}.
+@end itemize
+
+Another way to do the same thing is to use the ``tags'' feature of
+Emacs: it includes the command @code{tags-query-replace} which performs
+a query-replace across all the files mentioned in the @file{TAGS} file.
+@inforef{Tags Search, Tags Search, emacs}.
 
 @node Documentation for etags, Disabling backups, Replacing text across multiple files, Common requests
 @section Where is the documentation for @code{etags}?
@@ -2461,7 +2517,7 @@ To move a menu option from one position to another, simply evaluate
 
 More detailed information---and more examples of how to create and
 modify menu options---are in the @cite{Emacs Lisp Reference Manual}, under
-``Menu Keymaps''.  (@xref{Emacs Lisp documentation}, for information on
+``Menu Keymaps.''  (@xref{Emacs Lisp documentation}, for information on
 this manual.)
 
 @node Deleting menus and menu options, Turning on syntax highlighting, Modifying pull-down menus, Common requests
@@ -2572,7 +2628,7 @@ consult the documentation of the variables @code{ps-printer-name},
 Customize the @code{scroll-conservatively} variable with @kbd{M-x
 customize-variable @key{RET} scroll-conservatively @key{RET}} and set it
 to a large value like, say, 10000.  For an explanation of what this
-means, @inforef{Scrolling, Scrolling, emacs}.
+means, @inforef{Auto Scrolling, Auto Scrolling, emacs}.
 
 Alternatively, use the following Lisp form in your @file{.emacs}:
 
@@ -2627,7 +2683,8 @@ shell init file.  You have two alternatives to solve this:
 @item
 Make the alias conditioned on the @code{EMACS} variable in the
 environment.  When Emacs runs a subsidiary shell, it exports the
-@code{EMACS} variable with the value @code{t} to that shell.  You can
+@code{EMACS} variable to that shell, with value equal to the absolute
+file name of Emacs.  You can
 unalias @code{ls} when that happens, thus limiting the alias to your
 interactive sessions.
 
@@ -2697,14 +2754,14 @@ file:
 
 @example
 if ($?EMACS) then
-    if ("$EMACS" == t) then
+    if ("$EMACS" =~ /*) then
         if ($?tcsh) unset edit
         stty nl
     endif
 endif
 @end example
 
-Or put this in your @file{.emacs_tcsh} file:
+Or put this in your @file{.emacs_tcsh} or @file{~/.emacs.d/init_tcsh.sh} file:
 
 @example
 unset edit
@@ -3105,14 +3162,12 @@ arbitrary Emacs Lisp code evaluated when the file is visited.
 Obviously, there is a potential for Trojan horses to exploit this
 feature.
 
-Emacs 18 allowed this feature by default; users could disable it by
-setting the variable @code{inhibit-local-variables} to a non-@code{nil} value.
-
-As of Emacs 19, Emacs has a list of local variables that create a
-security risk.  If a file tries to set one of them, it asks the user to
-confirm whether the variables should be set.  You can also tell Emacs
-whether to allow the evaluation of Emacs Lisp code found at the bottom
-of files by setting the variable @code{enable-local-eval}.
+As of Emacs 22, Emacs has a list of local variables that are known to
+be safe to set.  If a file tries to set any variable outside this
+list, it asks the user to confirm whether the variables should be set.
+You can also tell Emacs whether to allow the evaluation of Emacs Lisp
+code found at the bottom of files by setting the variable
+@code{enable-local-eval}.
 
 For more information, @inforef{File Variables, File Variables, emacs}.
 
@@ -3377,7 +3432,7 @@ On OpenWindows, you may need to use @code{add_services} to add the
 ``OpenWindows Programmers'' optional software category from the CD-ROM.
 
 On HP-UX 8.0, you may need to run @code{update} again to load the
-X11-PRG ``fileset''.  This may be missing even if you specified ``all
+X11-PRG ``fileset.''  This may be missing even if you specified ``all
 filesets'' the first time.  If @file{libcurses.a} is missing, you may
 need to load the ``Berkeley Development Option.''
 
@@ -3474,7 +3529,7 @@ see @ref{Packages that do not come with Emacs}.
 @uref{http://www.anc.ed.ac.uk/~stephen/emacs/ell.html, The Emacs Lisp
 List (ELL)}, maintained by @email{stephen@@anc.ed.ac.uk, Stephen Eglen},
 aims to provide one compact list with links to all of the current Emacs
-Lisp files on the internet.  The ELL can be browsed over the web, or
+Lisp files on the Internet.  The ELL can be browsed over the web, or
 from Emacs with @uref{http://www.anc.ed.ac.uk/~stephen/emacs/ell.el,
 the @file{ell} package}.
 
@@ -3639,7 +3694,7 @@ lack certain features, such as the Emacs Lisp extension language.
 
 For information on Emacs for Windows 95 and NT, read the FAQ produced by
 @email{voelker@@cs.washington.edu, Geoff Voelker} and currently maintained
-by @email{ramprasad_i82@@yahoo.com, Ramprasad B}, available at
+by @email{ramprasad@@gnu.org, Ramprasad B}, available at
 
 @uref{http://www.gnu.org/software/emacs/windows/ntemacs.html}
 
@@ -3793,8 +3848,8 @@ Java code.  It is distributed with Emacs, but has
 Or send reports to @email{bug-vm@@wonderworks.com}
 @end table
 
-VM 7 works well with Emacs 21. Older versions of VM suitable for use
-with older versions of Emacs are available from
+VM 7 works well with Emacs 21 and Emacs 22. Older versions of VM
+suitable for use with older versions of Emacs are available from
 @uref{ftp://ftp.wonderworks.com/pub/vm/, the same FTP site}.
 
 
@@ -4512,7 +4567,7 @@ instead:
 @lisp
 (global-set-key "\C-h" 'delete-backward-char)
 
-;;; overrides mark-whole-buffer
+;; overrides mark-whole-buffer
 (global-set-key "\C-xh" 'help-command)
 @end lisp
 
@@ -4644,7 +4699,7 @@ under X).  For many terminals (notably DEC terminals) @key{F11}
 generates @key{ESC}.  If not, the following form can be used to bind it:
 
 @lisp
-;;; F11 is the documented ESC replacement on DEC terminals.
+;; F11 is the documented ESC replacement on DEC terminals.
 (define-key function-key-map [f11] [?\e])
 @end lisp
 
@@ -4819,6 +4874,7 @@ You can get the old behavior by binding @kbd{SPC} to
 * Inputting eight-bit characters::
 * Kanji and Chinese characters::
 * Right-to-left alphabets::
+* How to add fonts::
 @end menu
 
 @node Emacs does not display 8-bit characters, Inputting eight-bit characters, Alternate character sets, Alternate character sets
@@ -4858,7 +4914,7 @@ Emacs 20 and later includes many of the features of MULE, the MULtilingual
 Enhancement to Emacs.  @xref{Installing Emacs}, for information on where
 to find and download the latest version of Emacs.
 
-@node Right-to-left alphabets,  , Kanji and Chinese characters, Alternate character sets
+@node Right-to-left alphabets, How to add fonts, Kanji and Chinese characters, Alternate character sets
 @section Where is an Emacs that can handle Semitic (right-to-left) alphabets?
 @cindex Right-to-left alphabets
 @cindex Hebrew, handling with Emacs
@@ -4878,8 +4934,128 @@ Emacs 18.  Write to Joel if you want the patches or package.
 @file{hebrew.el} requires a Hebrew screen font, but no other hardware support.
 Joel has a screen font for PCs running MS-DOS or GNU/Linux.
 
-You might also try to query archie for files named with @file{hebrew};
-several ftp sites in Israel may also have the necessary files.
+You might also try querying @code{archie} for files named with
+@file{hebrew}; several ftp sites in Israel may also have the necessary
+files.
+
+@node How to add fonts,  , Right-to-left alphabets, Alternate character sets
+@section How do I add fonts for use with Emacs?
+@cindex add fonts for use with Emacs
+@cindex intlfonts
+
+First, download and install the BDF font files and any auxiliary
+packages they need.  The GNU Intlfonts distribution can be found on
+@uref{http://directory.fsf.org/localization/intlfonts.html, the GNU
+Software Directory Web site}.
+
+Next, if you are on X Window system, issue the following two commands
+from the shell's prompt:
+
+@example
+  xset +fp /usr/local/share/emacs/fonts
+  xset fp rehash
+@end example
+
+@noindent
+(Modify the first command if you installed the fonts in a directory
+that is not @file{/usr/local/share/emacs/fonts}.)  You also need to
+arrange for these two commands to run whenever you log in, e.g., by
+adding them to your window-system startup file, such as
+@file{~/.xsessionrc} or @file{~/.gnomerc}.
+
+Now, add the following line to your @file{~/.emacs} init file:
+
+@lisp
+  (add-to-list 'bdf-directory-list "/usr/share/emacs/fonts/bdf")
+@end lisp
+
+@noindent
+(Again, modify the file name if you installed the fonts elsewhere.)
+
+Finally, if you wish to use the installed fonts with @code{ps-print},
+add the following line to your @file{~/.emacs}:
+
+@lisp
+  (setq ps-multibyte-buffer 'bdf-font-except-latin)
+@end lisp
+
+A few additional steps are necessary for MS-Windows; they are listed
+below.
+
+First, make sure @emph{all} the directories with BDF font files are
+mentioned in @code{bdf-directory-list}.  On Unix and GNU/Linux
+systems, one normally runs @kbd{make install} to install the BDF fonts
+in the same directory.  By contrast, Windows users typically don't run
+the Intlfonts installation command, but unpack the distribution in
+some directory, which leaves the BDF fonts in its subdirectories.  For
+example, assume that you unpacked Intlfonts in @file{C:/Intlfonts};
+then you should set @code{bdf-directory-list} as follows:
+
+@lisp
+  (setq bdf-directory-list
+    '("C:/Intlfonts/Asian"
+      "C:/Intlfonts/Chinese" "C:/Intlfonts/Chinese.X"
+      "C:/Intlfonts/Chinese.BIG" "C:/Intlfonts/Ethiopic"
+      "C:/Intlfonts/European" "C:/Intlfonts/European.BIG"
+      "C:/Intlfonts/Japanese" "C:/Intlfonts/Japanese.X"
+      "C:/Intlfonts/Japanese.BIG" "C:/Intlfonts/Korean.X"
+      "C:/Intlfonts/Misc"))
+@end lisp
+
+@cindex @code{w32-bdf-filename-alist}
+@cindex @code{w32-find-bdf-fonts}
+Next, you need to set up the variable @code{w32-bdf-filename-alist} to
+an alist of the BDF fonts and their corresponding file names.
+Assuming you have set @code{bdf-directory-list} to name all the
+directories with the BDF font files, the following Lisp snippet will
+set up @code{w32-bdf-filename-alist}:
+
+@lisp
+  (setq w32-bdf-filename-alist
+     (w32-find-bdf-fonts bdf-directory-list))
+@end lisp
+
+Now, create fontsets for the BDF fonts:
+
+@lisp
+  (create-fontset-from-fontset-spec
+   "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
+   japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
+   katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
+   latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
+   japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
+   thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
+   lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
+   tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
+   ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
+   tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
+@end lisp
+
+Many of the international bdf fonts from Intlfonts are type 0, and
+therefore need to be added to font-encoding-alist:
+
+@lisp
+  (setq font-encoding-alist
+        (append '(("MuleTibetan-0" (tibetan . 0))
+                  ("GB2312"        (chinese-gb2312 . 0))
+                  ("JISX0208"      (japanese-jisx0208 . 0))
+                  ("JISX0212"      (japanese-jisx0212 . 0))
+                  ("VISCII"        (vietnamese-viscii-lower . 0))
+                  ("KSC5601"       (korean-ksc5601 . 0))
+                  ("MuleArabic-0"  (arabic-digit . 0))
+                  ("MuleArabic-1"  (arabic-1-column . 0))
+                  ("MuleArabic-2"  (arabic-2-column . 0)))
+                font-encoding-alist))
+@end lisp
+
+You can now use the Emacs font menu to select the @samp{bdf: 16-dot medium}
+fontset, or you can select it by setting the default font in your
+@file{~/.emacs}:
+
+@lisp
+  (set-default-font "fontset-bdf")
+@end lisp
+
 
 @c ------------------------------------------------------------
 @node Mail and news, Concept index, Alternate character sets, Top