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).
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