+@node Hyperlinking, Dissociated Press, Emulation, Top
+@section Hyperlinking and Navigation Features
+
+@cindex hyperlinking
+@cindex navigation
+ Various modes documented elsewhere have hypertext features so that
+you can follow links, usually by clicking @kbd{Mouse-2} on the link or
+typing @key{RET} while point is on the link. Info mode, Help mode and
+the Dired-like modes are examples. The Tags facility links between
+uses and definitions in source files, see @ref{Tags}. Imenu provides
+navigation amongst items indexed in the current buffer, see
+@ref{Imenu}. Info-lookup provides mode-specific lookup of definitions
+in Info indexes, see @ref{Documentation}. Speedbar maintains a frame
+in which links to files, and locations in files are displayed, see
+@ref{Speedbar}.
+
+ Other non-mode-specific facilities described in this section enable
+following links from the current buffer in a context-sensitive
+fashion.
+
+@menu
+* Browse-URL:: Following URLs.
+* Goto-address:: Activating URLs.
+* FFAP:: Finding files etc. at point.
+* Find-func:: Finding function and variable definitions.
+@end menu
+
+@node Browse-URL
+@subsection Following URLs
+@cindex World Wide Web
+@cindex Web
+@findex browse-url
+@findex browse-url-at-point
+@findex browse-url-at-mouse
+@cindex Browse-URL
+@cindex URLs
+
+@table @kbd
+@item M-x browse-url @key{RET} @var{url} @key{RET}
+Load a URL into a Web browser.
+@end table
+
+The Browse-URL package provides facilities for following URLs specifying
+links on the World Wide Web. Usually this works by invoking a web
+browser, but you can, for instance, arrange to invoke @code{compose-mail}
+from @samp{mailto:} URLs.
+
+ The general way to use this feature is to type @kbd{M-x browse-url},
+which displays a specified URL. If point is located near a plausible
+URL, that URL is used as the default. Other commands are available
+which you might like to bind to keys, such as
+@code{browse-url-at-point} and @code{browse-url-at-mouse}.
+
+@vindex browse-url-browser-function
+ You can customize Browse-URL's behavior via various options in the
+@code{browse-url} Customize group, particularly
+@code{browse-url-browser-function}. You can invoke actions dependent
+on the type of URL by defining @code{browse-url-browser-function} as
+an association list. The package's commentary available via @kbd{C-h
+p} provides more information. Packages with facilities for following
+URLs should always go through Browse-URL, so that the customization
+options for Browse-URL will affect all browsing in Emacs.
+
+@node Goto-address
+@subsection Activating URLs
+@findex goto-address
+@cindex Goto-address
+@cindex URLs, activating
+
+@table @kbd
+@item M-x goto-address
+Activate URLs and e-mail addresses in the current buffer.
+@end table
+
+ You can make URLs in the current buffer active with @kbd{M-x
+goto-address}. This finds all the URLs in the buffer, and establishes
+bindings for @kbd{Mouse-2} and @kbd{C-c @key{RET}} on them. After
+activation, if you click on a URL with @kbd{Mouse-2}, or move to a URL
+and type @kbd{C-c @key{RET}}, that will display the web page that the URL
+specifies. For a @samp{mailto} URL, it sends mail instead, using your
+selected mail-composition method (@pxref{Mail Methods}).
+
+ It can be useful to add @code{goto-address} to mode hooks and the
+hooks used to display an incoming message.
+@code{rmail-show-message-hook} is the appropriate hook for Rmail, and
+@code{mh-show-mode-hook} for MH-E. This is not needed for Gnus,
+which has a similar feature of its own.
+
+
+@node FFAP
+@subsection Finding Files and URLs at Point
+@findex find-file-at-point
+@findex ffap
+@findex ffap-dired-at-point
+@findex ffap-next
+@findex ffap-menu
+@cindex finding file at point
+
+ FFAP mode replaces certain key bindings for finding files, including
+@kbd{C-x C-f}, with commands that provide more sensitive defaults.
+These commands behave like the ordinary ones when given a prefix
+argument. Otherwise, they get the default file name or URL from the
+text around point. If what is found in the buffer has the form of a
+URL rather than a file name, the commands use @code{browse-url} to
+view it.
+
+ This feature is useful for following references in mail or news
+buffers, @file{README} files, @file{MANIFEST} files, and so on. The
+@samp{ffap} package's commentary available via @kbd{C-h p} and the
+@code{ffap} Custom group provide details.
+
+@cindex FFAP minor mode
+@findex ffap-mode
+ You can turn on FFAP minor mode to make the following key bindings
+and to install hooks for using @code{ffap} in Rmail, Gnus and VM
+article buffers.
+
+@table @kbd
+@item C-x C-f @var{filename} @key{RET}
+@kindex C-x C-f @r{(FFAP)}
+Find @var{filename}, guessing a default from text around point
+(@code{find-file-at-point}).
+@item C-x 4 f
+@kindex C-x 4 f @r{(FFAP)}
+@code{ffap-other-window}, analogous to @code{find-file-other-window}.
+@item C-x 5 f
+@kindex C-x 5 f @r{(FFAP)}
+@code{ffap-other-frame}, analogous to @code{find-file-other-frame}.
+@item M-x ffap-next
+Search buffer for next file name or URL, then find that file or URL.
+@item C-x d @var{directory} @key{RET}
+@kindex C-x d @r{(FFAP)}
+Start Dired on @var{directory}, defaulting to the directory name at
+point (@code{ffap-dired-at-point}).
+@item S-Mouse-3
+@kindex S-Mouse-3 @r{(FFAP)}
+@code{ffap-at-mouse} finds the file guessed from text around the position
+of a mouse click.
+@item C-S-Mouse-3
+@kindex C-S-Mouse-3 @r{(FFAP)}
+Display a menu of files and URLs mentioned in current buffer, then
+find the one you select (@code{ffap-menu}).
+@end table
+
+@node Find-func
+@subsection Finding Function and Variable Definitions
+@cindex definitions, finding in Lisp sources
+@cindex Lisp definitions, finding in sources
+
+@table @kbd
+@item M-x find-function @key{RET} @var{function} @key{RET}
+Find the definition of @var{function} in its source file.
+@item M-x find-variable @key{RET} @var{variable} @key{RET}
+Find the definition of @var{variable} in its source file.
+@item M-x find-function-on-key @key{RET} @var{key}
+Find the definition of the function that @var{key} invokes.
+@end table
+
+ These commands provide an easy way to find the definitions of Emacs
+Lisp functions and variables. They are similar in purpose to the Tags
+facility (@pxref{Tags}), but don't require a tags table; on the other
+hand, they only work for function and variable definitions that are
+already loaded in the Emacs session.
+
+@findex find-function
+@findex find-function-on-key
+@findex find-variable
+ To find the definition of a function, use @kbd{M-x find-function}.
+@kbd{M-x find-variable} finds the definition of a specified variable.
+@kbd{M-x find-function-on-key} finds the definition of the function
+bound to a specified key.
+
+ To use these commands, you must have the Lisp source (@samp{.el})
+files available along with the compiled (@samp{.elc}) files, in
+directories in @code{load-path}. You can use compressed source files
+if you enable Auto Compression mode. These commands only handle
+definitions written in Lisp, not primitive functions or variables
+defined in the C code of Emacs.
+
+@node Dissociated Press, Amusements, Hyperlinking, Top