[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

25.1.1 Functions for Visiting Files

This section describes the functions normally used to visit files. For historical reasons, these functions have names starting with ‘find-’ rather than ‘visit-’. Voir la section Buffer File Name, for functions and variables that access the visited file name of a buffer or that find an existing buffer by its visited file name.

In a Lisp program, if you want to look at the contents of a file but not alter it, the fastest way is to use insert-file-contents in a temporary buffer. Visiting the file is not necessary and takes longer. Voir la section Reading from Files.

Command: find-file filename &optional wildcards

This command selects a buffer visiting the file filename, using an existing buffer if there is one, and otherwise creating a new buffer and reading the file into it. It also returns that buffer.

Aside from some technical details, the body of the find-file function is basically equivalent to:

 
(switch-to-buffer (find-file-noselect filename nil nil wildcards))

(See switch-to-buffer in Displaying Buffers in Windows.)

If wildcards is non-nil, which is always true in an interactive call, then find-file expands wildcard characters in filename and visits all the matching files.

When find-file is called interactively, it prompts for filename in the minibuffer.

Function: find-file-noselect filename &optional nowarn rawfile wildcards

This function is the guts of all the file-visiting functions. It returns a buffer visiting the file filename. You may make the buffer current or display it in a window if you wish, but this function does not do so.

The function returns an existing buffer if there is one; otherwise it creates a new buffer and reads the file into it. When find-file-noselect uses an existing buffer, it first verifies that the file has not changed since it was last visited or saved in that buffer. If the file has changed, this function asks the user whether to reread the changed file. If the user says ‘yes’, any edits previously made in the buffer are lost.

Reading the file involves decoding the file's contents (voir la section Coding Systems), including end-of-line conversion, and format conversion (voir la section File Format Conversion). If wildcards is non-nil, then find-file-noselect expands wildcard characters in filename and visits all the matching files.

This function displays warning or advisory messages in various peculiar cases, unless the optional argument nowarn is non-nil. For example, if it needs to create a buffer, and there is no file named filename, it displays the message ‘(New file)’ in the echo area, and leaves the buffer empty.

The find-file-noselect function normally calls after-find-file after reading the file (voir la section Subroutines of Visiting). That function sets the buffer major mode, parses local variables, warns the user if there exists an auto-save file more recent than the file just visited, and finishes by running the functions in find-file-hook.

If the optional argument rawfile is non-nil, then after-find-file is not called, and the find-file-not-found-functions are not run in case of failure. What's more, a non-nil rawfile value suppresses coding system conversion and format conversion.

The find-file-noselect function usually returns the buffer that is visiting the file filename. But, if wildcards are actually used and expanded, it returns a list of buffers that are visiting the various files.

 
(find-file-noselect "/etc/fstab")
     ⇒ #<buffer fstab>
Command: find-file-other-window filename &optional wildcards

This command selects a buffer visiting the file filename, but does so in a window other than the selected window. It may use another existing window or split a window; see Displaying Buffers in Windows.

When this command is called interactively, it prompts for filename.

Command: find-file-read-only filename &optional wildcards

This command selects a buffer visiting the file filename, like find-file, but it marks the buffer as read-only. Voir la section Read-Only Buffers, for related functions and variables.

When this command is called interactively, it prompts for filename.

Command: view-file filename

This command visits filename using View mode, returning to the previous buffer when you exit View mode. View mode is a minor mode that provides commands to skim rapidly through the file, but does not let you modify the text. Entering View mode runs the normal hook view-mode-hook. Voir la section Hooks.

When view-file is called interactively, it prompts for filename.

User Option: find-file-wildcards

If this variable is non-nil, then the various find-file commands check for wildcard characters and visit all the files that match them (when invoked interactively or when their wildcards argument is non-nil). If this option is nil, then the find-file commands ignore their wildcards argument and never treat wildcard characters specially.

Variable: find-file-hook

The value of this variable is a list of functions to be called after a file is visited. The file's local-variables specification (if any) will have been processed before the hooks are run. The buffer visiting the file is current when the hook functions are run.

This variable is a normal hook. Voir la section Hooks.

Variable: find-file-not-found-functions

The value of this variable is a list of functions to be called when find-file or find-file-noselect is passed a nonexistent file name. find-file-noselect calls these functions as soon as it detects a nonexistent file. It calls them in the order of the list, until one of them returns non-nil. buffer-file-name is already set up.

This is not a normal hook because the values of the functions are used, and in many cases only some of the functions are called.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.