find-file-noselect function uses two important subroutines
which are sometimes useful in user Lisp code:
after-find-file. This section explains how to use them.
This function creates a suitably named buffer for visiting filename, and returns it. It uses filename (sans directory) as the name if that name is free; otherwise, it appends a string such as ‘<2>’ to get an unused name. See also Creating Buffers. Note that the uniquify library affects the result of this function. See Uniquify in The GNU Emacs Manual.
create-file-buffer does not
associate the new buffer with a file and does not select the buffer.
It also does not use the default major mode.
(create-file-buffer "foo") ⇒ #<buffer foo>
(create-file-buffer "foo") ⇒ #<buffer foo<2>>
(create-file-buffer "foo") ⇒ #<buffer foo<3>>
This function is used by
generate-new-buffer (see Creating Buffers).
This function sets the buffer major mode, and parses local variables
(see Auto Major Mode). It is called by
and by the default revert function (see Reverting).
If reading the file got an error because the file does not exist, but
its directory does exist, the caller should pass a non-
for error. In that case,
after-find-file issues a warning:
‘(New file)’. For more serious errors, the caller should usually not
If warn is non-
nil, then this function issues a warning
if an auto-save file exists and is more recent than the visited file.
If noauto is non-
nil, that says not to enable or disable
Auto-Save mode. The mode remains enabled if it was enabled before.
If after-find-file-from-revert-buffer is non-
means this call was from
revert-buffer. This has no direct
effect, but some mode functions and hook functions check the value
of this variable.
If nomodes is non-
nil, that means don’t alter the buffer’s
major mode, don’t process local variables specifications in the file,
and don’t run
find-file-hook. This feature is used by
revert-buffer in some cases.
The last thing
after-find-file does is call all the functions
in the list