Fix cross-references between manuals
* doc/misc/viper.texi (Viper Specials): * doc/misc/url.texi (Tramp): * doc/misc/sem-user.texi (Smart Jump): * doc/lispintro/emacs-lisp-intro.texi (Finding More): * doc/misc/efaq.texi (Replacing text across multiple files): Fix cross-references between manuals. (Bug#23612) * doc/lispintro/emacs-lisp-intro.texi (etags): Node deleted: no longer relevant to Emacs Lisp programming.
This commit is contained in:
parent
f3d2dedeba
commit
2e589c0042
5 changed files with 22 additions and 181 deletions
|
@ -584,7 +584,6 @@ Regular Expression Searches
|
|||
* re-search-forward:: Very similar to @code{search-forward}.
|
||||
* forward-sentence:: A straightforward example of regexp search.
|
||||
* forward-paragraph:: A somewhat complex example.
|
||||
* etags:: How to create your own @file{TAGS} table.
|
||||
* Regexp Review::
|
||||
* re-search Exercises::
|
||||
|
||||
|
@ -4583,54 +4582,21 @@ definition.
|
|||
@end ignore
|
||||
|
||||
More generally, if you want to see a function in its original source
|
||||
file, you can use the @code{find-tag} function to jump to it.
|
||||
@code{find-tag} works with a wide variety of languages, not just
|
||||
Lisp, and C, and it works with non-programming text as well. For
|
||||
example, @code{find-tag} will jump to the various nodes in the
|
||||
Texinfo source file of this document.
|
||||
The @code{find-tag} function depends on @dfn{tags tables} that record
|
||||
the locations of the functions, variables, and other items to which
|
||||
@code{find-tag} jumps.
|
||||
file, you can use the @code{xref-find-definitions} function to jump to
|
||||
it. @code{xref-find-definitions} works with a wide variety of
|
||||
languages, not just Lisp, and C, and it works with non-programming
|
||||
text as well. For example, @code{xref-find-definitions} will jump to
|
||||
the various nodes in the Texinfo source file of this document.
|
||||
|
||||
To use the @code{find-tag} command, type @kbd{M-.} (i.e., press the
|
||||
period key while holding down the @key{META} key, or else type the
|
||||
@key{ESC} key and then type the period key), and then, at the prompt,
|
||||
type in the name of the function whose source code you want to see,
|
||||
such as @code{mark-whole-buffer}, and then type @key{RET}. Emacs will
|
||||
switch buffers and display the source code for the function on your
|
||||
screen. To switch back to your current buffer, type @kbd{C-x b
|
||||
@key{RET}}. (On some keyboards, the @key{META} key is labeled
|
||||
@key{ALT}.)
|
||||
|
||||
@c !!! 22.1.1 tags table location in this paragraph
|
||||
@cindex TAGS table, specifying
|
||||
@findex find-tag
|
||||
Depending on how the initial default values of your copy of Emacs are
|
||||
set, you may also need to specify the location of your tags table,
|
||||
which is a file called @file{TAGS}. For example, if you are
|
||||
interested in Emacs sources, the tags table you will most likely want,
|
||||
if it has already been created for you, will be in a subdirectory of
|
||||
the @file{/usr/local/share/emacs/} directory; thus you would use the
|
||||
@code{M-x visit-tags-table} command and specify a pathname such as
|
||||
@file{/usr/local/share/emacs/22.1.1/lisp/TAGS}. If the tags table
|
||||
has not already been created, you will have to create it yourself. It
|
||||
will be in a file such as @file{/usr/local/src/emacs/src/TAGS}.
|
||||
|
||||
@need 1250
|
||||
To create a @file{TAGS} file in a specific directory, switch to that
|
||||
directory in Emacs using @kbd{M-x cd} command, or list the directory
|
||||
with @kbd{C-x d} (@code{dired}). Then run the compile command, with
|
||||
@w{@code{etags *.el}} as the command to execute:
|
||||
|
||||
@smallexample
|
||||
M-x compile RET etags *.el RET
|
||||
@end smallexample
|
||||
|
||||
For more information, see @ref{etags, , Create Your Own @file{TAGS} File}.
|
||||
|
||||
After you become more familiar with Emacs Lisp, you will find that you will
|
||||
frequently use @code{find-tag} to navigate your way around source code;
|
||||
and you will create your own @file{TAGS} tables.
|
||||
To use the @code{xref-find-definitions} command, type @kbd{M-.}
|
||||
(i.e., press the period key while holding down the @key{META} key, or
|
||||
else type the @key{ESC} key and then type the period key), and then,
|
||||
at the prompt, type in the name of the function whose source code you
|
||||
want to see, such as @code{mark-whole-buffer}, and then type
|
||||
@key{RET}. Emacs will switch buffers and display the source code for
|
||||
the function on your screen. To switch back to your current buffer,
|
||||
type @kbd{C-x b @key{RET}}. (On some keyboards, the @key{META} key is
|
||||
labeled @key{ALT}.)
|
||||
|
||||
@cindex Library, as term for ``file''
|
||||
Incidentally, the files that contain Lisp code are conventionally
|
||||
|
@ -12142,7 +12108,6 @@ introduces several new features.
|
|||
* re-search-forward:: Very similar to @code{search-forward}.
|
||||
* forward-sentence:: A straightforward example of regexp search.
|
||||
* forward-paragraph:: A somewhat complex example.
|
||||
* etags:: How to create your own @file{TAGS} table.
|
||||
* Regexp Review::
|
||||
* re-search Exercises::
|
||||
@end menu
|
||||
|
@ -13294,130 +13259,6 @@ key; you will be taken directly to the source. (Be sure to install
|
|||
your sources! Without them, you are like a person who tries to drive
|
||||
a car with his eyes shut!)
|
||||
|
||||
@node etags
|
||||
@section Create Your Own @file{TAGS} File
|
||||
@findex etags
|
||||
@cindex @file{TAGS} file, create own
|
||||
|
||||
Besides @kbd{C-h f} (@code{describe-function}), another way to see the
|
||||
source of a function is to type @kbd{M-.} (@code{find-tag}) and the
|
||||
name of the function when prompted for it. This is a good habit to
|
||||
get into. The @kbd{M-.} (@code{find-tag}) command takes you directly
|
||||
to the source for a function, variable, or node. The function depends
|
||||
on tags tables to tell it where to go.
|
||||
|
||||
If the @code{find-tag} function first asks you for the name of a
|
||||
@file{TAGS} table, give it the name of a @file{TAGS} file such as
|
||||
@file{/usr/local/src/emacs/src/TAGS}. (The exact path to your
|
||||
@file{TAGS} file depends on how your copy of Emacs was installed. I
|
||||
just told you the location that provides both my C and my Emacs Lisp
|
||||
sources.)
|
||||
|
||||
You can also create your own @file{TAGS} file for directories that
|
||||
lack one.
|
||||
|
||||
You often need to build and install tags tables yourself. They are
|
||||
not built automatically. A tags table is called a @file{TAGS} file;
|
||||
the name is in upper case letters.
|
||||
|
||||
You can create a @file{TAGS} file by calling the @code{etags} program
|
||||
that comes as a part of the Emacs distribution. Usually, @code{etags}
|
||||
is compiled and installed when Emacs is built. (@code{etags} is not
|
||||
an Emacs Lisp function or a part of Emacs; it is a C program.)
|
||||
|
||||
@need 1250
|
||||
To create a @file{TAGS} file, first switch to the directory in which
|
||||
you want to create the file. In Emacs you can do this with the
|
||||
@kbd{M-x cd} command, or by visiting a file in the directory, or by
|
||||
listing the directory with @kbd{C-x d} (@code{dired}). Then run the
|
||||
compile command, with @w{@code{etags *.el}} as the command to execute
|
||||
|
||||
@smallexample
|
||||
M-x compile RET etags *.el RET
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
to create a @file{TAGS} file for Emacs Lisp.
|
||||
|
||||
For example, if you have a large number of files in your
|
||||
@file{~/emacs} directory, as I do---I have 137 @file{.el} files in it,
|
||||
of which I load 12---you can create a @file{TAGS} file for the Emacs
|
||||
Lisp files in that directory.
|
||||
|
||||
@need 1250
|
||||
The @code{etags} program takes all the usual shell wildcards. For
|
||||
example, if you have two directories for which you want a single
|
||||
@file{TAGS} file, type @w{@code{etags *.el ../elisp/*.el}}, where
|
||||
@file{../elisp/} is the second directory:
|
||||
|
||||
@smallexample
|
||||
M-x compile RET etags *.el ../elisp/*.el RET
|
||||
@end smallexample
|
||||
|
||||
@need 1250
|
||||
Type
|
||||
|
||||
@smallexample
|
||||
M-x compile RET etags --help RET
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
to see a list of the options accepted by @code{etags} as well as a
|
||||
list of supported languages.
|
||||
|
||||
The @code{etags} program handles more than 20 languages, including
|
||||
Emacs Lisp, Common Lisp, Scheme, C, C++, Ada, Fortran, HTML, Java,
|
||||
LaTeX, Pascal, Perl, PostScript, Python, TeX, Texinfo, makefiles, and
|
||||
most assemblers. The program has no switches for specifying the
|
||||
language; it recognizes the language in an input file according to its
|
||||
file name and contents.
|
||||
|
||||
@file{etags} is very helpful when you are writing code yourself and
|
||||
want to refer back to functions you have already written. Just run
|
||||
@code{etags} again at intervals as you write new functions, so they
|
||||
become part of the @file{TAGS} file.
|
||||
|
||||
If you think an appropriate @file{TAGS} file already exists for what
|
||||
you want, but do not know where it is, you can use the @code{locate}
|
||||
program to attempt to find it.
|
||||
|
||||
Type @w{@kbd{M-x locate @key{RET} TAGS @key{RET}}} and Emacs will list
|
||||
for you the full path names of all your @file{TAGS} files. On my
|
||||
system, this command lists 34 @file{TAGS} files. On the other hand, a
|
||||
plain vanilla system I recently installed did not contain any
|
||||
@file{TAGS} files.
|
||||
|
||||
If the tags table you want has been created, you can use the @code{M-x
|
||||
visit-tags-table} command to specify it. Otherwise, you will need to
|
||||
create the tag table yourself and then use @code{M-x
|
||||
visit-tags-table}.
|
||||
|
||||
@subsubheading Building Tags in the Emacs sources
|
||||
@cindex Building Tags in the Emacs sources
|
||||
@cindex Tags in the Emacs sources
|
||||
@findex make tags
|
||||
|
||||
The GNU Emacs sources come with a @file{Makefile} that contains a
|
||||
sophisticated @code{etags} command that creates, collects, and merges
|
||||
tags tables from all over the Emacs sources and puts the information
|
||||
into one @file{TAGS} file in the @file{src/} directory. (The
|
||||
@file{src/} directory is below the top level of your Emacs directory.)
|
||||
|
||||
@need 1250
|
||||
To build this @file{TAGS} file, go to the top level of your Emacs
|
||||
source directory and run the compile command @code{make tags}:
|
||||
|
||||
@smallexample
|
||||
M-x compile RET make tags RET
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
(The @code{make tags} command works well with the GNU Emacs sources,
|
||||
as well as with some other source packages.)
|
||||
|
||||
For more information, see @ref{Tags, , Tag Tables, emacs, The GNU Emacs
|
||||
Manual}.
|
||||
|
||||
@node Regexp Review
|
||||
@section Review
|
||||
|
||||
|
|
|
@ -2290,7 +2290,7 @@ is actually typical for regexp syntax.)
|
|||
@cindex Recursive search/replace operations
|
||||
|
||||
Dired mode (@kbd{M-x dired @key{RET}}, or @kbd{C-x d}) supports the
|
||||
command @code{dired-do-query-replace-regexp} (@kbd{Q}), which allows
|
||||
command @code{dired-do-find-regexp-and-replace} (@kbd{Q}), which allows
|
||||
users to replace regular expressions in multiple files.
|
||||
|
||||
You can use this command to perform search/replace operations on
|
||||
|
@ -2315,7 +2315,7 @@ To accept all replacements in each file, hit @kbd{!}.
|
|||
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.
|
||||
@xref{Tags Search,,, emacs, The GNU Emacs Manual}.
|
||||
@xref{Identifier Search,,, emacs, The GNU Emacs Manual}.
|
||||
|
||||
@node Documentation for etags
|
||||
@section Where is the documentation for @code{etags}?
|
||||
|
|
|
@ -874,9 +874,9 @@ command, like this:
|
|||
@end example
|
||||
@end defun
|
||||
|
||||
These commands are often more accurate than the @code{find-tag}
|
||||
command (@pxref{Tags,,,emacs,Emacs manual}), because the Semantic
|
||||
Analyzer is context-sensitive.
|
||||
These commands are often more accurate than the @code{xref-find-definitions}
|
||||
command (@pxref{Looking Up Identifiers,,,emacs,Emacs manual}), because
|
||||
the Semantic Analyzer is context-sensitive.
|
||||
|
||||
You can also use @kbd{C-c , j} (@code{semantic-complete-jump-local})
|
||||
and @kbd{C-c , J} (@code{semantic-complete-jump}) to navigate tags.
|
||||
|
|
|
@ -820,12 +820,12 @@ The file transfer protocol. @xref{file/ftp}.
|
|||
|
||||
@item ssh
|
||||
@cindex ssh
|
||||
The secure shell protocol. @xref{Inline Methods,,, tramp, The Tramp
|
||||
The secure shell protocol. @xref{Inline methods,,, tramp, The Tramp
|
||||
Manual}.
|
||||
|
||||
@item scp
|
||||
@cindex scp
|
||||
The secure file copy protocol. @xref{External Methods,,, tramp, The
|
||||
The secure file copy protocol. @xref{External methods,,, tramp, The
|
||||
Tramp Manual}.
|
||||
|
||||
@item rsync
|
||||
|
|
|
@ -2568,7 +2568,7 @@ above block should be commented out.
|
|||
|
||||
Even though these commands are sometimes useful, they are no substitute for
|
||||
the powerful @emph{tag table} facility of Emacs. Viper's @kbd{:tag} command
|
||||
in a primitive interface to Emacs tags. @xref{Tags,Tags,Tags,emacs,
|
||||
in a primitive interface to Emacs tags. @xref{Tags Tables,,,emacs,
|
||||
The GNU Emacs Manual}, for more information on tags.
|
||||
|
||||
The following two commands are normally bound to a mouse click and are part
|
||||
|
|
Loading…
Add table
Reference in a new issue