diff options
| author | Richard M. Stallman | 2001-02-16 21:08:46 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2001-02-16 21:08:46 +0000 |
| commit | f02d86a3fa0b0ea132755c0c0fae81bba409943b (patch) | |
| tree | 8ae3b757a3bd82accc59f2b95a7c912aadeb9589 | |
| parent | f3f053f31fd1ee7a71aa839a4461a94632d64fd2 (diff) | |
| download | emacs-f02d86a3fa0b0ea132755c0c0fae81bba409943b.tar.gz emacs-f02d86a3fa0b0ea132755c0c0fae81bba409943b.zip | |
Many small clarifications.
New node File Name Cache, broken out of the File Convenience node.
Use @command.
Eliminate invalid @vindex.
Delete duplicate index entries.
Delete vc-ignore-vc-files and vc-handle-cvs. Add vc-handled-backends.
Clarify Auto Compression mode, Tar mode, Diff mode, Smerge mode,
and Archive mode. Rewrite Shadow File node. Rewrite Timestamp text.
| -rw-r--r-- | man/files.texi | 471 |
1 files changed, 217 insertions, 254 deletions
diff --git a/man/files.texi b/man/files.texi index 4369251398d..0de8040123c 100644 --- a/man/files.texi +++ b/man/files.texi | |||
| @@ -34,6 +34,7 @@ on file directories. | |||
| 34 | * File Archives:: Operating on tar, zip, jar etc. archive files. | 34 | * File Archives:: Operating on tar, zip, jar etc. archive files. |
| 35 | * Remote Files:: Accessing files on other sites. | 35 | * Remote Files:: Accessing files on other sites. |
| 36 | * Quoted File Names:: Quoting special characters in file names. | 36 | * Quoted File Names:: Quoting special characters in file names. |
| 37 | * File Name Cache:: Completion against a list of files you often use. | ||
| 37 | * File Conveniences:: Convenience Features for Finding Files. | 38 | * File Conveniences:: Convenience Features for Finding Files. |
| 38 | @end menu | 39 | @end menu |
| 39 | 40 | ||
| @@ -97,7 +98,7 @@ first slash in the double slash; the result is @samp{/x1/rms/foo}. | |||
| 97 | @xref{Minibuffer File}. | 98 | @xref{Minibuffer File}. |
| 98 | 99 | ||
| 99 | @samp{$} in a file name is used to substitute environment variables. | 100 | @samp{$} in a file name is used to substitute environment variables. |
| 100 | For example, if you have used the shell command @samp{export | 101 | For example, if you have used the shell command @command{export |
| 101 | FOO=rms/hacks} to set up an environment variable named @env{FOO}, then | 102 | FOO=rms/hacks} to set up an environment variable named @env{FOO}, then |
| 102 | you can use @file{/u/$FOO/test.c} or @file{/u/$@{FOO@}/test.c} as an | 103 | you can use @file{/u/$FOO/test.c} or @file{/u/$@{FOO@}/test.c} as an |
| 103 | abbreviation for @file{/u/rms/hacks/test.c}. The environment variable | 104 | abbreviation for @file{/u/rms/hacks/test.c}. The environment variable |
| @@ -230,11 +231,11 @@ to try to visit a directory. | |||
| 230 | 231 | ||
| 231 | @cindex wildcard characters in file names | 232 | @cindex wildcard characters in file names |
| 232 | @vindex find-file-wildcards | 233 | @vindex find-file-wildcards |
| 233 | If the file name you specify contains @code{sh}-style wildcard | 234 | If the file name you specify contains shell-style wildcard |
| 234 | characters, Emacs visits all the files that match it. @xref{Quoted File | 235 | characters, Emacs visits all the files that match it. Wildcards |
| 235 | Names}, if you want to visit a file whose name actually contains | 236 | comprise @samp{?}, @samp{*} and @samp{[@dots{}]} sequences. |
| 236 | wildcard characters. Wildcards comprise @samp{?}, @samp{*} and | 237 | @xref{Quoted File Names}, for how to visit a file whose name actually |
| 237 | @samp{[@dots{}]} sequences. The wildcard feature can be disabled by | 238 | contains wildcard characters. You can disable the wildcard feature by |
| 238 | customizing @code{find-file-wildcards}. | 239 | customizing @code{find-file-wildcards}. |
| 239 | 240 | ||
| 240 | If you visit a file that the operating system won't let you modify, | 241 | If you visit a file that the operating system won't let you modify, |
| @@ -281,8 +282,7 @@ seek. This feature is available only when you are using a window | |||
| 281 | system. @xref{Frames}. | 282 | system. @xref{Frames}. |
| 282 | 283 | ||
| 283 | @findex find-file-literally | 284 | @findex find-file-literally |
| 284 | @vindex require-final-newline@r{, and }find-file-literally | 285 | If you wish to edit a file as a sequence of ASCII characters with no special |
| 285 | If you wish to edit a file as a sequence of characters with no special | ||
| 286 | encoding or conversion, use the @kbd{M-x find-file-literally} command. | 286 | encoding or conversion, use the @kbd{M-x find-file-literally} command. |
| 287 | It visits a file, like @kbd{C-x C-f}, but does not do format conversion | 287 | It visits a file, like @kbd{C-x C-f}, but does not do format conversion |
| 288 | (@pxref{Formatted Text}), character code conversion (@pxref{Coding | 288 | (@pxref{Formatted Text}), character code conversion (@pxref{Coding |
| @@ -440,7 +440,8 @@ every time a file is saved or written. The default is @code{nil}. | |||
| 440 | * Backup:: How Emacs saves the old version of your file. | 440 | * Backup:: How Emacs saves the old version of your file. |
| 441 | * Interlocking:: How Emacs protects against simultaneous editing | 441 | * Interlocking:: How Emacs protects against simultaneous editing |
| 442 | of one file by two users. | 442 | of one file by two users. |
| 443 | * Shadowing: File Shadowing. Copying files to `shadows' automatically. | 443 | * Shadowing: File Shadowing. |
| 444 | Copying files to `shadows' automatically. | ||
| 444 | * Time Stamps:: Emacs can update time stamps on saved files. | 445 | * Time Stamps:: Emacs can update time stamps on saved files. |
| 445 | @end menu | 446 | @end menu |
| 446 | 447 | ||
| @@ -449,7 +450,6 @@ every time a file is saved or written. The default is @code{nil}. | |||
| 449 | @cindex backup file | 450 | @cindex backup file |
| 450 | @vindex make-backup-files | 451 | @vindex make-backup-files |
| 451 | @vindex vc-make-backup-files | 452 | @vindex vc-make-backup-files |
| 452 | @vindex backup-enable-predicate | ||
| 453 | 453 | ||
| 454 | On most operating systems, rewriting a file automatically destroys all | 454 | On most operating systems, rewriting a file automatically destroys all |
| 455 | record of what the file used to contain. Thus, saving a file from Emacs | 455 | record of what the file used to contain. Thus, saving a file from Emacs |
| @@ -471,8 +471,9 @@ control system. @xref{VC Workfile Handling}. | |||
| 471 | @vindex temporary-file-directory | 471 | @vindex temporary-file-directory |
| 472 | @vindex small-temporary-file-directory | 472 | @vindex small-temporary-file-directory |
| 473 | The default value of the @code{backup-enable-predicate} variable | 473 | The default value of the @code{backup-enable-predicate} variable |
| 474 | prevents backup files being written for files in the directories named | 474 | prevents backup files being written for files in the directories used |
| 475 | by @code{temporary-file-directory} or @code{small-temporary-file-directory}. | 475 | for temporary files, specified by @code{temporary-file-directory} or |
| 476 | @code{small-temporary-file-directory}. | ||
| 476 | 477 | ||
| 477 | At your option, Emacs can keep either a single backup file or a series of | 478 | At your option, Emacs can keep either a single backup file or a series of |
| 478 | numbered backup files for each file that you edit. | 479 | numbered backup files for each file that you edit. |
| @@ -513,28 +514,29 @@ be @file{eval.c~}. | |||
| 513 | You can change this behaviour by defining the variable | 514 | You can change this behaviour by defining the variable |
| 514 | @code{make-backup-file-name-function} to a suitable function. | 515 | @code{make-backup-file-name-function} to a suitable function. |
| 515 | Alternatively you can customize the variable | 516 | Alternatively you can customize the variable |
| 516 | @code{backup-directory-alist} to specify that files matching certain | 517 | @var{backup-directory-alist} to specify that files matching certain |
| 517 | patterns should be backed up in specific directories. A typical use is | 518 | patterns should be backed up in specific directories. |
| 518 | to add an element @code{("." . @var{dir})} to make all backups in the | 519 | |
| 519 | directory with absolute name @var{dir}; the names will be mangled to | 520 | A typical use is to add an element @code{("." . @var{dir})} to make |
| 520 | prevent clashes between files with the same names originating in | 521 | all backups in the directory with absolute name @var{dir}; Emacs |
| 521 | different directories. Alternatively, adding, say, @code{("." ".~")} | 522 | modifies the backup file names to avoid clashes between files with the |
| 522 | would make backups in the invisible sub-directory @file{.~} of the | 523 | same names originating in different directories. Alternatively, |
| 523 | original file's directory. The directories are created if necessary | 524 | adding, say, @code{("." ".~")} would make backups in the invisible |
| 524 | when the backup is made. | 525 | subdirectory @file{.~} of the original file's directory. Emacs |
| 526 | creates the directory, if necessary, to make the backup. | ||
| 527 | |||
| 528 | If access control stops Emacs from writing backup files under the usual | ||
| 529 | names, it writes the backup file as @file{%backup%~} in your home | ||
| 530 | directory. Only one such file can exist, so only the most recently | ||
| 531 | made such backup is available. | ||
| 525 | 532 | ||
| 526 | If you choose to have a series of numbered backup files, backup file | 533 | If you choose to have a series of numbered backup files, backup file |
| 527 | names are made by appending @samp{.~}, the number, and another @samp{~} | 534 | names contain @samp{.~}, the number, and another @samp{~} after the |
| 528 | to the original file name. Thus, the backup files of @file{eval.c} | 535 | original file name. Thus, the backup files of @file{eval.c} would be |
| 529 | would be called @file{eval.c.~1~}, @file{eval.c.~2~}, and so on, through | 536 | called @file{eval.c.~1~}, @file{eval.c.~2~}, and so on, all the way |
| 530 | names like @file{eval.c.~259~} and beyond. As for single backups, | 537 | through names like @file{eval.c.~259~} and beyond. The variable |
| 531 | @code{backup-directory-alist} can be used to control the location of | 538 | @code{backup-directory-alist} applies to numbered backups just as |
| 532 | numbered backups. | 539 | usual. |
| 533 | |||
| 534 | If protection stops you from writing backup files under the usual names, | ||
| 535 | the backup file is written as @file{%backup%~} in your home directory. | ||
| 536 | Only one such file can exist, so only the most recently made such backup is | ||
| 537 | available. | ||
| 538 | 540 | ||
| 539 | @vindex version-control | 541 | @vindex version-control |
| 540 | The choice of single backup or numbered backups is controlled by the | 542 | The choice of single backup or numbered backups is controlled by the |
| @@ -620,7 +622,7 @@ locally (@pxref{File Variables}). | |||
| 620 | @vindex backup-by-copying-when-mismatch | 622 | @vindex backup-by-copying-when-mismatch |
| 621 | @vindex backup-by-copying-when-privileged-mismatch | 623 | @vindex backup-by-copying-when-privileged-mismatch |
| 622 | @cindex file ownership, and backup | 624 | @cindex file ownership, and backup |
| 623 | @cindex backup, and user's uid | 625 | @cindex backup, and user-id |
| 624 | The choice of renaming or copying is controlled by four variables. | 626 | The choice of renaming or copying is controlled by four variables. |
| 625 | Renaming is the default choice. If the variable | 627 | Renaming is the default choice. If the variable |
| 626 | @code{backup-by-copying} is non-@code{nil}, copying is used. Otherwise, | 628 | @code{backup-by-copying} is non-@code{nil}, copying is used. Otherwise, |
| @@ -632,8 +634,8 @@ copying is used if renaming would cause the file's owner or group to | |||
| 632 | change. @code{backup-by-copying-when-mismatch} is @code{t} by default | 634 | change. @code{backup-by-copying-when-mismatch} is @code{t} by default |
| 633 | if you start Emacs as the superuser. The fourth variable, | 635 | if you start Emacs as the superuser. The fourth variable, |
| 634 | @code{backup-by-copying-when-privileged-mismatch}, gives the highest | 636 | @code{backup-by-copying-when-privileged-mismatch}, gives the highest |
| 635 | numeric user id for which @code{backup-by-copying-when-mismatch} will be | 637 | numeric user-id for which @code{backup-by-copying-when-mismatch} will be |
| 636 | forced on. This is useful when low-numbered uid's are assigned to | 638 | forced on. This is useful when low-numbered user-id are assigned to |
| 637 | special system users, such as @code{root}, @code{bin}, @code{daemon}, | 639 | special system users, such as @code{root}, @code{bin}, @code{daemon}, |
| 638 | etc., which must maintain ownership of files. | 640 | etc., which must maintain ownership of files. |
| 639 | 641 | ||
| @@ -732,43 +734,44 @@ different name, and use @code{diff} to compare the two files.@refill | |||
| 732 | @table @kbd | 734 | @table @kbd |
| 733 | @item M-x shadow-initialize | 735 | @item M-x shadow-initialize |
| 734 | Set up file shadowing. | 736 | Set up file shadowing. |
| 735 | @item M-x shadow-define-cluster @key{RET} @var{name} @key{RET} | ||
| 736 | Define a shadow file cluster @var{name}. | ||
| 737 | @item M-x shadow-define-regexp-group | ||
| 738 | Make each of a group of files be shared between hosts. | ||
| 739 | @item M-x shadow-define-literal-group | 737 | @item M-x shadow-define-literal-group |
| 740 | Declare a single file to be shared between sites. | 738 | Declare a single file to be shared between sites. |
| 739 | @item M-x shadow-define-regexp-group | ||
| 740 | Make all files that match each of a group of files be shared between hosts. | ||
| 741 | @item M-x shadow-define-cluster @key{RET} @var{name} @key{RET} | ||
| 742 | Define a shadow file cluster @var{name}. | ||
| 741 | @item M-x shadow-copy-files | 743 | @item M-x shadow-copy-files |
| 742 | Copy all pending shadow files. | 744 | Copy all pending shadow files. |
| 743 | @item M-x shadow-cancel () | 745 | @item M-x shadow-cancel |
| 744 | Cancel the instruction to copy some files. | 746 | Cancel the instruction to shadow some files. |
| 745 | @end table | 747 | @end table |
| 746 | 748 | ||
| 747 | You can arrange to keep identical copies of files in more than one | 749 | You can arrange to keep identical @dfn{shadow} copies of certain files |
| 748 | place---possibly on different machines. When you save a file, Emacs can | 750 | in more than one place---possibly on different machines. To do this, |
| 749 | check whether it is on the list of files with @dfn{shadows}, and if so, | 751 | first you must set up a @dfn{shadow file group}, which is a set of |
| 750 | it tries to copy it when you exit Emacs (or use the @kbd{M-x | 752 | identically-named files shared between a list of sites. The file |
| 751 | shadow-copy-files} command). | 753 | group is permanent and applies to further Emacs sessions as well as |
| 752 | 754 | the current one. Once the group is set up, every time you exit Emacs, | |
| 753 | A @dfn{cluster} is a group of hosts that share directories, so that | 755 | it will copy the file you edited to the other files in its group. You |
| 754 | copying to or from one of them is sufficient to update the file on all | 756 | can also do the copying without exiting Emacs, by typing @kbd{M-x |
| 755 | of them. Clusters are defined by a name, the network address of a | 757 | shadow-copy-files}. |
| 756 | primary host (the one we copy files to), and a regular expression that | 758 | |
| 757 | matches the hostnames of all the sites in the cluster. A @dfn{file | 759 | To set up a file group, use @kbd{M-x shadow-define-literal-group} or |
| 758 | group} is a set of identically-named files shared between a list of | 760 | @kbd{M-x shadow-define-regexp-group}. See their documentation strings |
| 759 | sites. | 761 | for further information. |
| 760 | 762 | ||
| 761 | Add clusters (if necessary) and file groups with @kbd{M-x | 763 | Before copying a file to its shadows, Emacs asks for confirmation. |
| 762 | shadow-define-cluster}, @kbd{M-x shadow-define-literal-group}, and | 764 | You can answer ``no'' to bypass copying of this file, this time. If |
| 763 | @kbd{M-x shadow-define-regexp-group} (see the documentation for these | 765 | you want to cancel the shadowing permanently for a certain file, use |
| 764 | functions for information on how and when to use them). After doing | 766 | @kbd{M-x shadow-cancel} to eliminate or change the shadow file group. |
| 765 | this once, everything should be automatic. The lists of clusters and | 767 | |
| 766 | shadows are remembered from one emacs session to another. | 768 | A @dfn{shadow cluster} is a group of hosts that share directories, so |
| 767 | 769 | that copying to or from one of them is sufficient to update the file | |
| 768 | If you do not want to copy a particular file, you can answer "no" and be | 770 | on all of them. Each shadow cluster has a name, and specifies the |
| 769 | asked again next time you hit @kbd{C-x 4 s} or exit Emacs. If you do | 771 | network address of a primary host (the one we copy files to), and a |
| 770 | not want to be asked again, use @kbd{M-x shadow-cancel}, and you will | 772 | regular expression that matches the hostnames of all the other hosts |
| 771 | not be asked until you change the file and save it again. | 773 | in the cluster. You can define a shadow cluster with @kbd{M-x |
| 774 | shadow-define-cluster}. | ||
| 772 | 775 | ||
| 773 | @node Time Stamps | 776 | @node Time Stamps |
| 774 | @subsection Updating Time Stamps Automatically | 777 | @subsection Updating Time Stamps Automatically |
| @@ -777,27 +780,29 @@ not be asked until you change the file and save it again. | |||
| 777 | @cindex modification dates | 780 | @cindex modification dates |
| 778 | @cindex locale, date format | 781 | @cindex locale, date format |
| 779 | 782 | ||
| 780 | You can arrange to have time stamp text in a file updated | 783 | You can arrange put a time stamp in a file, so that it will be updated |
| 781 | automatically to reflect the modification time when you save the | 784 | automatically each time you edit and save the file. The time stamp |
| 782 | file. To do this, include in the first eight lines a template like | 785 | has to be in the first eight lines of the file, and you should |
| 786 | insert it like this: | ||
| 787 | |||
| 783 | @example | 788 | @example |
| 784 | Time-stamp: <> | 789 | Time-stamp: <> |
| 785 | @end example | 790 | @end example |
| 791 | |||
| 786 | @noindent | 792 | @noindent |
| 787 | or | 793 | or like this: |
| 794 | |||
| 788 | @example | 795 | @example |
| 789 | Time-stamp: "" | 796 | Time-stamp: "" |
| 790 | @end example | 797 | @end example |
| 791 | @noindent | ||
| 792 | and customize the value of the hook @code{write-file-hooks} to add | ||
| 793 | @code{time-stamp}. Such a template is updated with the current time | ||
| 794 | and date when the file is written. You can also use the command | ||
| 795 | @kbd{M-x time-stamp} to update the time stamp manually. | ||
| 796 | 798 | ||
| 797 | You can customize the form of the template and the time string used | 799 | Then add the hook function @code{time-stamp} to the hook |
| 798 | along with other parameters in the Custom group @code{time-stamp}. | 800 | @code{write-file-hooks}; that hook function will automatically update |
| 799 | Note that non-numeric fields in the time stamp are printed according | 801 | the time stamp, inserting the current date and time when you save the |
| 800 | to your locale setting. | 802 | file. You can also use the command @kbd{M-x time-stamp} to update the |
| 803 | time stamp manually. For other customizations, see the Custom group | ||
| 804 | @code{time-stamp}. Note that non-numeric fields in the time stamp are | ||
| 805 | formatted according to your locale setting (@pxref{Environment}). | ||
| 801 | 806 | ||
| 802 | @node Reverting | 807 | @node Reverting |
| 803 | @section Reverting a Buffer | 808 | @section Reverting a Buffer |
| @@ -986,14 +991,13 @@ recover are present in Emacs buffers. You should then save them. Only | |||
| 986 | this---saving them---updates the files themselves. | 991 | this---saving them---updates the files themselves. |
| 987 | 992 | ||
| 988 | @vindex auto-save-list-file-prefix | 993 | @vindex auto-save-list-file-prefix |
| 989 | Interrupted sessions are recorded for later recovery in files named | 994 | Emacs records interrupted sessions for later recovery in files named |
| 990 | @file{~/.emacs.d/auto-save-list/.saves-@var{pid}-@var{hostname}}. The | 995 | @file{~/.emacs.d/auto-save-list/.saves-@var{pid}-@var{hostname}}. The |
| 991 | @samp{~/.emacs.d/auto-save-list/.saves-} portion of these names comes | 996 | @samp{~/.emacs.d/auto-save-list/.saves-} portion of these names comes |
| 992 | from the value of @code{auto-save-list-file-prefix}. You can arrange | 997 | from the value of @code{auto-save-list-file-prefix}. You can record |
| 993 | to record sessions in a different place by setting that variable in | 998 | sessions in a different place by customizing that variable. If you |
| 994 | your @file{.emacs} file. If you set @code{auto-save-list-file-prefix} | 999 | set @code{auto-save-list-file-prefix} to @code{nil} in your |
| 995 | to @code{nil} in your @file{.emacs} file, sessions are not recorded | 1000 | @file{.emacs} file, sessions are not recorded for recovery. |
| 996 | for recovery. | ||
| 997 | 1001 | ||
| 998 | @node File Aliases | 1002 | @node File Aliases |
| 999 | @section File Name Aliases | 1003 | @section File Name Aliases |
| @@ -1011,18 +1015,14 @@ links point to directories. | |||
| 1011 | two different buffers, but it warns you about the situation. | 1015 | two different buffers, but it warns you about the situation. |
| 1012 | 1016 | ||
| 1013 | @vindex find-file-existing-other-name | 1017 | @vindex find-file-existing-other-name |
| 1014 | Normally, if you visit a file which Emacs is already visiting under a | 1018 | Normally, if you visit a file which Emacs is already visiting under |
| 1015 | different name, Emacs prints a message in the echo area and uses an | 1019 | a different name, Emacs displays a message in the echo area and uses |
| 1016 | existing buffer, where that file is visited under another name. This | 1020 | the existing buffer visiting that file. This can happen on systems |
| 1017 | can happen on systems that support symbolic links, or if you use a long | 1021 | that support symbolic links, or if you use a long file name on a |
| 1018 | file name on a system which truncates long file names. | 1022 | system that truncates long file names. You can disable this feature |
| 1019 | 1023 | by setting the variable @code{find-file-existing-other-name} to | |
| 1020 | If Emacs should use different buffers when visiting the same file | 1024 | @code{nil}. Then if you visit the same file under two different names, |
| 1021 | under different names, set the variable | 1025 | you get a separate buffer for each file name. |
| 1022 | @code{find-file-existing-other-name} to @code{nil}. A non-@code{nil} | ||
| 1023 | value, which is the default, means @code{find-file} uses the existing | ||
| 1024 | buffer visiting the file, no matter which of the file's names you | ||
| 1025 | specify. | ||
| 1026 | 1026 | ||
| 1027 | @vindex find-file-visit-truename | 1027 | @vindex find-file-visit-truename |
| 1028 | @cindex truenames of files | 1028 | @cindex truenames of files |
| @@ -1044,12 +1044,11 @@ such as the creation time of each version, who created it, and a | |||
| 1044 | description of what was changed in that version. | 1044 | description of what was changed in that version. |
| 1045 | 1045 | ||
| 1046 | The Emacs version control interface is called VC. Its commands work | 1046 | The Emacs version control interface is called VC. Its commands work |
| 1047 | with three version control systems---RCS, CVS and SCCS. The GNU project | 1047 | with three version control systems---RCS, CVS and SCCS. The GNU |
| 1048 | recommends RCS and CVS, which are free software and available from the | 1048 | project recommends RCS and CVS, which are free software and available |
| 1049 | Free Software Foundation. | 1049 | from the Free Software Foundation. We also have free software to |
| 1050 | @cindex CSSC | 1050 | replace SCCS, known as CSSC; if you are using SCCS and don't want to |
| 1051 | There is a GNU clone of SCCS called CSSC, but RCS is technically | 1051 | make the incompatible change to RCS or CVS, you can switch to CSSC. |
| 1052 | superior. | ||
| 1053 | 1052 | ||
| 1054 | @menu | 1053 | @menu |
| 1055 | * Introduction to VC:: How version control works in general. | 1054 | * Introduction to VC:: How version control works in general. |
| @@ -1504,10 +1503,10 @@ with CVS. | |||
| 1504 | @cindex PCL-CVS | 1503 | @cindex PCL-CVS |
| 1505 | @pindex cvs | 1504 | @pindex cvs |
| 1506 | @cindex CVS Dired Mode | 1505 | @cindex CVS Dired Mode |
| 1507 | The VC Dired Mode described here works with all the VC-supported version | 1506 | The VC Dired Mode described here works with all the version control |
| 1508 | control systems. There is a similar facility specialized for use with | 1507 | systems that VC supports. Another more powerful facility, designed |
| 1509 | CVS, called PCL-CVS. @xref{Top, , About PCL-CVS, pcl-cvs, PCL-CVS --- The | 1508 | specifically for CVS, is called PCL-CVS. @xref{Top, , About PCL-CVS, |
| 1510 | Emacs Front-End to CVS}. | 1509 | pcl-cvs, PCL-CVS --- The Emacs Front-End to CVS}. |
| 1511 | 1510 | ||
| 1512 | @kindex C-x v d | 1511 | @kindex C-x v d |
| 1513 | @findex vc-directory | 1512 | @findex vc-directory |
| @@ -2153,16 +2152,6 @@ headers. | |||
| 2153 | There are many ways of customizing VC. The options you can set fall | 2152 | There are many ways of customizing VC. The options you can set fall |
| 2154 | into four categories, described in the following sections. | 2153 | into four categories, described in the following sections. |
| 2155 | 2154 | ||
| 2156 | @vindex vc-ignore-vc-files | ||
| 2157 | @cindex Version control, deactivating | ||
| 2158 | In addition, it is possible to turn VC on and off generally by setting | ||
| 2159 | the variable @code{vc-ignore-vc-files}. Normally VC will notice the | ||
| 2160 | presence of version control on a file you visit and automatically invoke | ||
| 2161 | the relevant program to check the file's state. Change | ||
| 2162 | @code{vc-ignore-vc-files} if this isn't the right thing, for instance, | ||
| 2163 | if you edit files under version control but don't have the relevant | ||
| 2164 | version control programs available. | ||
| 2165 | |||
| 2166 | @menu | 2155 | @menu |
| 2167 | * Backend Options:: Customizing the back-end to your needs. | 2156 | * Backend Options:: Customizing the back-end to your needs. |
| 2168 | * VC Workfile Handling:: Various options concerning working files. | 2157 | * VC Workfile Handling:: Various options concerning working files. |
| @@ -2174,6 +2163,13 @@ version control programs available. | |||
| 2174 | @node Backend Options | 2163 | @node Backend Options |
| 2175 | @subsubsection Options for VC Backends | 2164 | @subsubsection Options for VC Backends |
| 2176 | 2165 | ||
| 2166 | @vindex vc-handled-backends | ||
| 2167 | By default, VC detects automatically which files are managed by RCS, | ||
| 2168 | which by CVS, and which by SCCS, and it tries to do the right thing in | ||
| 2169 | all three cases. If you want VC to ignore one or more of these | ||
| 2170 | backends, set @code{vc-handled-backends} to the list of backends that | ||
| 2171 | @emph{should} be handled. | ||
| 2172 | |||
| 2177 | @cindex backend options (VC) | 2173 | @cindex backend options (VC) |
| 2178 | @cindex locking under version control | 2174 | @cindex locking under version control |
| 2179 | You can tell RCS and CVS whether to use locking for a file or not | 2175 | You can tell RCS and CVS whether to use locking for a file or not |
| @@ -2212,12 +2208,6 @@ and CVS takes care to notify other developers of the fact that you | |||
| 2212 | intend to change the file. See the CVS documentation for details on | 2208 | intend to change the file. See the CVS documentation for details on |
| 2213 | using the watch feature. | 2209 | using the watch feature. |
| 2214 | 2210 | ||
| 2215 | @vindex vc-handle-cvs | ||
| 2216 | You can turn off use of VC for CVS-managed files by setting the | ||
| 2217 | variable @code{vc-handle-cvs} to @code{nil}. If you do this, Emacs | ||
| 2218 | treats these files as if they were not registered, and the VC commands | ||
| 2219 | are not available for them. You must do all CVS operations manually. | ||
| 2220 | |||
| 2221 | @node VC Workfile Handling | 2211 | @node VC Workfile Handling |
| 2222 | @subsubsection VC Workfile Handling | 2212 | @subsubsection VC Workfile Handling |
| 2223 | 2213 | ||
| @@ -2405,24 +2395,26 @@ non-@code{nil}, it ignores differences in case as well. | |||
| 2405 | @cindex diffs | 2395 | @cindex diffs |
| 2406 | @cindex patches | 2396 | @cindex patches |
| 2407 | @cindex Diff mode | 2397 | @cindex Diff mode |
| 2408 | Differences between versions of files are often distributed as | 2398 | Differences between versions of files are often distributed as |
| 2409 | @dfn{patches} output by @command{diff} or a version control system. | 2399 | @dfn{patches}, which are the output from @command{diff} or a version |
| 2410 | @kbd{M-x diff-mode} turns on Diff mode, a major mode for viewing and | 2400 | control system that uses @command{diff}. @kbd{M-x diff-mode} turns on |
| 2411 | editing patches, either as `unified diffs' or `context diffs'. | 2401 | Diff mode, a major mode for viewing and editing patches, either as |
| 2412 | 2402 | ``unified diffs'' or ``context diffs.'' | |
| 2413 | See also @ref{Emerge} and @ref{Top,,, ediff, The Ediff Manual}, for | ||
| 2414 | convenient facilities for merging two similar files. | ||
| 2415 | 2403 | ||
| 2416 | @cindex Smerge mode | 2404 | @cindex Smerge mode |
| 2417 | @findex smerge-mode | 2405 | @findex smerge-mode |
| 2418 | @cindex failed merges | 2406 | @cindex failed merges |
| 2419 | @cindex merges, failed | 2407 | @cindex merges, failed |
| 2420 | @pindex diff3 | 2408 | @pindex diff3 |
| 2421 | Use @kbd{M-x smerge-mode} to turn on Smerge mode, a minor mode for | 2409 | You can use @kbd{M-x smerge-mode} to turn on Smerge mode, a minor |
| 2422 | editing output from the @command{diff3} program. This is typically the | 2410 | mode for editing output from the @command{diff3} program. This is |
| 2423 | result of a failed merge from a version control system `update' outside | 2411 | typically the result of a failed merge from a version control system |
| 2424 | VC, due to conflicting changes to a file. Smerge mode provides commands | 2412 | ``update'' outside VC, due to conflicting changes to a file. Smerge |
| 2425 | to resolve conflicts by selecting specific changes. | 2413 | mode provides commands to resolve conflicts by selecting specific |
| 2414 | changes. | ||
| 2415 | |||
| 2416 | See also @ref{Emerge}, and @ref{Top,,, ediff, The Ediff Manual}, for | ||
| 2417 | convenient facilities for merging two similar files. | ||
| 2426 | 2418 | ||
| 2427 | @node Misc File Ops | 2419 | @node Misc File Ops |
| 2428 | @section Miscellaneous File Operations | 2420 | @section Miscellaneous File Operations |
| @@ -2530,11 +2522,16 @@ compiling it. | |||
| 2530 | @cindex Tar mode | 2522 | @cindex Tar mode |
| 2531 | @pindex tar | 2523 | @pindex tar |
| 2532 | 2524 | ||
| 2533 | If you visit a file with extension @samp{.tar}, it is assumed to be an | 2525 | A file whose name ends in @samp{.tar} is normally an @dfn{archive} |
| 2534 | @dfn{archive} made by the @code{tar} program and it is viewed in a Tar | 2526 | made by the @code{tar} program. Emacs views these files in a special |
| 2535 | mode buffer. This provides a Dired-like listing of the contents. | 2527 | mode called Tar mode which provides a Dired-like list of the contents |
| 2536 | @xref{Dired}. You can move around the component files as in Dired to | 2528 | (@pxref{Dired}). You can move around through the list just as you |
| 2537 | visit and manipulate them. | 2529 | would in Dired, and visit the subfiles contained in the archive. |
| 2530 | However, not all Dired commands are available in Tar mode. | ||
| 2531 | |||
| 2532 | If you enable Auto Compression mode (@pxref{Compressed Files}), then | ||
| 2533 | Tar mode is used also for compressed archives---files with extensions | ||
| 2534 | @samp{.tgz}, @code{.tar.Z} and @code{.tar.gz}. | ||
| 2538 | 2535 | ||
| 2539 | The keys @kbd{e}, @kbd{f} and @kbd{RET} all extract a component file | 2536 | The keys @kbd{e}, @kbd{f} and @kbd{RET} all extract a component file |
| 2540 | into its own buffer. You can edit it there and when you save the buffer | 2537 | into its own buffer. You can edit it there and when you save the buffer |
| @@ -2557,17 +2554,9 @@ name extracts the file into a buffer and displays that buffer. | |||
| 2557 | Saving the Tar buffer writes a new version of the archive to disk with | 2554 | Saving the Tar buffer writes a new version of the archive to disk with |
| 2558 | the changes you made to the components. | 2555 | the changes you made to the components. |
| 2559 | 2556 | ||
| 2560 | If you enable Auto Compression mode (@pxref{Compressed Files}), then | 2557 | You don't need the @code{tar} program to use Tar mode---Emacs reads |
| 2561 | Tar mode will be used also for compressed archives in files with | 2558 | the archives directly. However, accessing compressed archives |
| 2562 | extensions @samp{.tgz}, @code{.tar.Z} and @code{.tar.gz}. | 2559 | requires the appropriate uncompression program. |
| 2563 | |||
| 2564 | It is not necessary to have the @code{tar} program available to use | ||
| 2565 | Tar mode or Archive mode---Emacs reads the archives directly. For | ||
| 2566 | compressed archives such as @code{.tar.gz}, you need the appropriate | ||
| 2567 | uncompress program to be available to Emacs. | ||
| 2568 | |||
| 2569 | It is not necessary to have the @code{tar} program available to use Tar | ||
| 2570 | mode or Archive mode---Emacs reads the archives directly. | ||
| 2571 | 2560 | ||
| 2572 | @cindex Archive mode | 2561 | @cindex Archive mode |
| 2573 | @cindex mode, archive | 2562 | @cindex mode, archive |
| @@ -2584,24 +2573,22 @@ mode or Archive mode---Emacs reads the archives directly. | |||
| 2584 | @cindex Java class archives | 2573 | @cindex Java class archives |
| 2585 | @cindex unzip archives | 2574 | @cindex unzip archives |
| 2586 | A separate but similar Archive mode is used for archives produced by | 2575 | A separate but similar Archive mode is used for archives produced by |
| 2587 | the programs @code{arc}, @code{zip}, @code{lzh} and @code{zoo} which | 2576 | the programs @code{arc}, @code{jar}, @code{lzh}, @code{zip}, and |
| 2588 | have extensions corresponding to the program names. These archiving | 2577 | @code{zoo}, which have extensions corresponding to the program names. |
| 2589 | programs are typically used on MS-DOS and MS-Windows systems. Java | ||
| 2590 | class archives with extension @samp{.jar} are also recognized. | ||
| 2591 | 2578 | ||
| 2592 | The keybindings in Archive mode are similar to those in Tar mode, with | 2579 | The keybindings of Archive mode are similar to those in Tar mode, |
| 2593 | the addition of the @kbd{m} key which marks a file for subsequent | 2580 | with the addition of the @kbd{m} key which marks a file for subsequent |
| 2594 | operations, and @kbd{M-@key{DEL}} which unmarks all the marked files. | 2581 | operations, and @kbd{M-@key{DEL}} which unmarks all the marked files. |
| 2595 | Also, the @kbd{a} key toggles the display of file information in those | 2582 | Also, the @kbd{a} key toggles the display of detailed file |
| 2596 | archive types where all of of the info is too long to be displayed on a | 2583 | information, for those archive types where it won't fit in a single |
| 2597 | single line. Operations such as @samp{change mode}, @samp{change owner} | 2584 | line. Operations such as renaming a subfile, or changing its mode or |
| 2598 | and @samp{rename} are supported only for some of the archive formats. | 2585 | owner, are supported only for some of the archive formats. |
| 2599 | 2586 | ||
| 2600 | Unlike Tar mode, Archive mode runs the appropriate program to unpack | 2587 | Unlike Tar mode, Archive mode runs the archiving program to unpack |
| 2601 | and repack archives. Details of the program names and their options can | 2588 | and repack archives. Details of the program names and their options |
| 2602 | be set in the @samp{Archive} Customize group. However, you don't need | 2589 | can be set in the @samp{Archive} Customize group. However, you don't |
| 2603 | these programs to @emph{view} the archive contents, only to extract and | 2590 | need these programs to the archive table of contents, only to extract |
| 2604 | delete archived files. | 2591 | or manipulate the subfiles in the archive. |
| 2605 | 2592 | ||
| 2606 | @node Remote Files | 2593 | @node Remote Files |
| 2607 | @section Remote Files | 2594 | @section Remote Files |
| @@ -2655,26 +2642,19 @@ for a password as normal. | |||
| 2655 | @vindex ange-ftp-smart-gateway | 2642 | @vindex ange-ftp-smart-gateway |
| 2656 | @vindex ange-ftp-gateway-host | 2643 | @vindex ange-ftp-gateway-host |
| 2657 | Sometimes you may be unable to access files on a remote machine | 2644 | Sometimes you may be unable to access files on a remote machine |
| 2658 | because some machine in between (usually called a @dfn{firewall}) | 2645 | because a @dfn{firewall} in between blocks the connection for security |
| 2659 | blocks the connection for security reasons. However, you might have | 2646 | reasons. If you can log in on a @dfn{gateway} machine from which the |
| 2660 | account on another machine, called a @dfn{gateway}, from which the | 2647 | target files @emph{are} accessible, and whose FTP server supports |
| 2661 | target files @strong{are} accessible. Instead of logging into the | 2648 | gatewaying features, you can still use remote file names; all you have |
| 2662 | gateway, downloading the files, then copying them to your local | 2649 | to do is specify the name of the gateway machine by setting the |
| 2663 | machine, you can set the variable @code{ange-ftp-smart-gateway} to a | 2650 | variable @code{ange-ftp-gateway-host}, and set |
| 2664 | non-@code{nil} value, and Emacs will use advanced FTP features to | 2651 | @code{ange-ftp-smart-gateway} to @code{t}. Otherwise you may be able |
| 2665 | access the remote machine. If this doesn't work, try setting the | 2652 | to make remote file names work, but the procedure is complex. You can |
| 2666 | variable @code{ange-ftp-gateway-host} to the name of the gateway | 2653 | read the instructions by typing @kbd{M-x finder-commentary @key{RET} |
| 2667 | machine (which is the name you use to log into the gateway). Then | 2654 | ange-ftp @key{RET}}. |
| 2668 | Emacs will try to run the FTP process on the gateway for you. If that | ||
| 2669 | doesn't work either (because the FTP program on your machine doesn't | ||
| 2670 | support some of the required features), read the instructions in the | ||
| 2671 | @file{ange-ftp.el} file about working with gateways. You can read | ||
| 2672 | these instructions by typing @kbd{M-x finder-commentary @key{RET} | ||
| 2673 | ange-ftp @key{RET}}. Those instructions include various additional | ||
| 2674 | tips for using @code{ange-ftp}. | ||
| 2675 | 2655 | ||
| 2676 | @vindex file-name-handler-alist | 2656 | @vindex file-name-handler-alist |
| 2677 | @cindex disabling ange-ftp | 2657 | @cindex disabling remote files |
| 2678 | You can entirely turn off the FTP file name feature by removing the | 2658 | You can entirely turn off the FTP file name feature by removing the |
| 2679 | entries @var{ange-ftp-completion-hook-function} and | 2659 | entries @var{ange-ftp-completion-hook-function} and |
| 2680 | @var{ange-ftp-hook-function} from the variable | 2660 | @var{ange-ftp-hook-function} from the variable |
| @@ -2712,78 +2692,57 @@ starts with @samp{foo} and ends with @samp{bar} is @file{foo*bar}, then | |||
| 2712 | specifying @file{/tmp/foo*bar} will visit just @file{/tmp/foo*bar}. | 2692 | specifying @file{/tmp/foo*bar} will visit just @file{/tmp/foo*bar}. |
| 2713 | Another way is to specify @file{/tmp/foo[*]bar}. | 2693 | Another way is to specify @file{/tmp/foo[*]bar}. |
| 2714 | 2694 | ||
| 2715 | @node File Conveniences | 2695 | @node File Name Cache |
| 2716 | @section Convenience Features for Finding Files | 2696 | @section File Name Cache |
| 2697 | |||
| 2698 | @cindex file name caching | ||
| 2699 | @cindex cache of file names | ||
| 2700 | @pindex find | ||
| 2701 | @kindex C-@key{TAB} | ||
| 2702 | @findex file-cache-minibuffer-complete | ||
| 2703 | You can use the @dfn{file name cache} to make it easy to locate a | ||
| 2704 | file by name, without having to remember exactly where it is located. | ||
| 2705 | When typing a file name in the minibuffer, @kbd{C-@key{tab}} | ||
| 2706 | (@code{file-cache-minibuffer-complete}) completes it using the file | ||
| 2707 | name cache. If you repeat @kbd{C-@key{tab}}, that cycles through the | ||
| 2708 | possible completions of what you had originally typed. Note that the | ||
| 2709 | @kbd{C-@key{tab}} character cannot be typed on most text-only | ||
| 2710 | terminals. | ||
| 2711 | |||
| 2712 | The file name cache does not fill up automatically. Instead, you | ||
| 2713 | load file names into the cache using these commands: | ||
| 2717 | 2714 | ||
| 2715 | @findex file-cache-add-directory | ||
| 2718 | @table @kbd | 2716 | @table @kbd |
| 2719 | @item M-x ff-find-other-file | ||
| 2720 | Find the header or source file corresponding to the current buffer's | ||
| 2721 | file. | ||
| 2722 | @item M-x file-cache-add-directory @key{RET} @var{directory} @key{RET} | 2717 | @item M-x file-cache-add-directory @key{RET} @var{directory} @key{RET} |
| 2723 | Add @var{directory} to the file cache. | 2718 | Add each file name in @var{directory} to the file name cache. |
| 2724 | @item M-x locate @key{RET} @var{pattern} @key{RET} | 2719 | @item M-x file-cache-add-directory-using-find @key{RET} @var{directory} @key{RET} |
| 2725 | Run the program @command{locate} to match @var{pattern} in the database, | 2720 | Add each file name in @var{directory} and all of its nested |
| 2726 | putting results in a buffer. | 2721 | subdirectories to the file name cache. |
| 2727 | @item M-x locate-with-filter @key{RET} @var{pattern} @key{RET} @var{filter} @key{RET} | 2722 | @item M-x file-cache-add-directory-using-locate @key{RET} @var{directory} @key{RET} |
| 2728 | Like @code{locate}, but use a @var{filter} on the results. | 2723 | Add each file name in @var{directory} and all of its nested |
| 2729 | @item M-x auto-image-file-mode | 2724 | subdirectories to the file name cache, using @command{locate} to find |
| 2730 | Toggle visiting of image files as images. | 2725 | them all. |
| 2726 | @item M-x file-cache-add-directory-list @key{RET} @var{variable} @key{RET} | ||
| 2727 | Add each file name in each directory listed in @var{variable} | ||
| 2728 | to the file name cache. @var{variable} should be a Lisp variable | ||
| 2729 | such as @code{load-path} or @code{exec-path}, whose value is a list | ||
| 2730 | of directory names. | ||
| 2731 | @item M-x file-cache-clear-cache @key{RET} | ||
| 2732 | Clear the cache; that is, remove all file names from it. | ||
| 2731 | @end table | 2733 | @end table |
| 2732 | 2734 | ||
| 2733 | @findex ff-find-other-file | 2735 | @node File Conveniences |
| 2734 | @vindex ff-other-file-alist | 2736 | @section Convenience Features for Finding Files |
| 2735 | The command @kbd{ff-find-other-file} finds a file related to the one | ||
| 2736 | visited by the current buffer, based on customizable patterns. | ||
| 2737 | Typically this will be the header file corresponding to a C/C++ source | ||
| 2738 | file, or vice versa. The patterns describing the corresponding files | ||
| 2739 | are customizable via @code{ff-other-file-alist}. | ||
| 2740 | |||
| 2741 | @cindex filename caching | ||
| 2742 | @cindex cache of file names | ||
| 2743 | @pindex find | ||
| 2744 | @pindex locate | ||
| 2745 | @vindex file-cache-delete-regexps | ||
| 2746 | @findex file-cache-add-directory | ||
| 2747 | You can use a cache to make it easy to locate files by name without | ||
| 2748 | having to remember exactly where they are. When typing a filename in | ||
| 2749 | the minibuffer you can @kbd{C-tab} will complete it using the filename | ||
| 2750 | cache and cycle through possible completions. (The @kbd{C-tab} key | ||
| 2751 | can't be distinguished from @kbd{TAB} on all terminals.) The command | ||
| 2752 | @kbd{M-x file-cache-add-directory} adds the files in a directory to the | ||
| 2753 | cache and @kbd{M-x file-cache-add-directory-list} acts on a list of | ||
| 2754 | directories like @code{load-path} or @code{exec-path}. @kbd{M-x | ||
| 2755 | file-cache-add-directory-using-find} uses the @command{find} program to | ||
| 2756 | add a directory tree to the cache and @kbd{M-x | ||
| 2757 | file-cache-add-directory-using-locate} uses the @command{locate} program | ||
| 2758 | to add files matching a pattern. Use @kbd{M-x file-cache-clear-cache} | ||
| 2759 | to remove all items from the cache; @kbd{M-x file-cache-delete-regexps} | ||
| 2760 | and similar functions remove items from it selectively. | ||
| 2761 | |||
| 2762 | @pindex locate | ||
| 2763 | @findex locate | ||
| 2764 | @findex locate-with-filter | ||
| 2765 | @cindex file database (locate) | ||
| 2766 | @vindex locate-command | ||
| 2767 | @kbd{M-x locate} runs an interface to the @code{locate} program for | ||
| 2768 | searching a pre-built database of file names; most Dired commands are | ||
| 2769 | avilable for use on the result. @xref{, ,Find , find, GNU Findutils}. | ||
| 2770 | @kbd{M-x locate-with-filter} is similar, but keeps only lines matching a | ||
| 2771 | regular expression. Customize the option @code{locate-command} to use | ||
| 2772 | another program than the default, GNU @code{locate}. | ||
| 2773 | |||
| 2774 | The @kbd{M-x ffap} command generalizes @kbd{M-x find-file}. @xref{FFAP}. | ||
| 2775 | Partial Completion mode offers other features extending @kbd{M-x | ||
| 2776 | find-file} which can be used with @code{ffap}. @xref{Completion | ||
| 2777 | Options}. | ||
| 2778 | 2737 | ||
| 2779 | @findex recentf-mode | 2738 | @findex recentf-mode |
| 2780 | @vindex recentf-mode | 2739 | @vindex recentf-mode |
| 2781 | @findex recentf-save-list | 2740 | @findex recentf-save-list |
| 2782 | @findex recentf-edit-list | 2741 | @findex recentf-edit-list |
| 2783 | The command @kbd{M-x recentf-mode} or the Customize option of the same | 2742 | If you enable Recentf mode, with @kbd{M-x recentf-mode}, the |
| 2784 | name adds to the Files menu a submenu containing a list of recently | 2743 | @samp{Files} menu includes a submenu containing a list of recently |
| 2785 | opened files. @kbd{recentf-save-list} saves the current file list to a | 2744 | opened files. @kbd{M-x recentf-save-list} saves the current |
| 2786 | file and @kbd{recentf-edit-list} edits it. | 2745 | recent-file-list to a file, and @kbd{M-x recentf-edit-list} edits it. |
| 2787 | 2746 | ||
| 2788 | @findex auto-image-file-mode | 2747 | @findex auto-image-file-mode |
| 2789 | @findex mode, auto-image-file | 2748 | @findex mode, auto-image-file |
| @@ -2791,11 +2750,15 @@ file and @kbd{recentf-edit-list} edits it. | |||
| 2791 | @cindex visiting image files | 2750 | @cindex visiting image files |
| 2792 | @vindex image-file-name-regexps | 2751 | @vindex image-file-name-regexps |
| 2793 | @vindex image-file-name-extensions | 2752 | @vindex image-file-name-extensions |
| 2794 | When Auto-image-file minor mode is enabled, image files are displayed as | 2753 | When Auto-image-file minor mode is enabled, visiting an image file |
| 2795 | images when they are visited or inserted into buffers if Emacs can | 2754 | displays it as an image, not as text. Likewise, inserting an image |
| 2796 | display the relevant image type. File names matching | 2755 | file into a buffer inserts it as an image. This works only when Emacs |
| 2797 | @code{image-file-name-extensions} or @code{image-file-name-regexps} are | 2756 | can display the relevant image type. The variables |
| 2798 | considered to contain images. Note that Emacs can only display images | 2757 | @code{image-file-name-extensions} or @code{image-file-name-regexps} |
| 2799 | of the types for which the appropriate support libraries were linked | 2758 | control which file names are recognized as containing images. |
| 2800 | into Emacs when it was built. In particular, the MS-Windows version | 2759 | |
| 2801 | of Emacs doesn't support image files as of version 21.1. | 2760 | The @kbd{M-x ffap} command generalizes @code{find-file} with more |
| 2761 | powerful heuristic defaults (@pxref{FFAP}), often based on the text at | ||
| 2762 | point. Partial Completion mode offers other features extending | ||
| 2763 | @code{find-file}, which can be used with @code{ffap}. | ||
| 2764 | @xref{Completion Options}. | ||