Home Explore Blog CI



neovim

8th chunk of `runtime/doc/vimfn.txt`
e7aba1c4299fcff20850adea673b8c97aee64f0dda9ae7320000000100000faa
 by their short name in the
		output of |:buffers|, but bufexists() requires using their
		long name to be able to find them.
		bufexists() may report a buffer exists, but to use the name
		with a |:buffer| command you may need to use |expand()|.  Esp
		for MS-Windows 8.3 names in the form "c:\DOCUME~1"
		Use "bufexists(0)" to test for the existence of an alternate
		file name.

                Parameters: ~
                  • {buf} (`any`)

                Return: ~
                  (`0|1`)

buflisted({buf})                                                   *buflisted()*
		The result is a Number, which is |TRUE| if a buffer called
		{buf} exists and is listed (has the 'buflisted' option set).
		The {buf} argument is used like with |bufexists()|.

                Parameters: ~
                  • {buf} (`any`)

                Return: ~
                  (`0|1`)

bufload({buf})                                                       *bufload()*
		Ensure the buffer {buf} is loaded.  When the buffer name
		refers to an existing file then the file is read.  Otherwise
		the buffer will be empty.  If the buffer was already loaded
		then there is no change.  If the buffer is not related to a
		file then no file is read (e.g., when 'buftype' is "nofile").
		If there is an existing swap file for the file of the buffer,
		there will be no dialog, the buffer will be loaded anyway.
		The {buf} argument is used like with |bufexists()|.

                Parameters: ~
                  • {buf} (`any`)

bufloaded({buf})                                                   *bufloaded()*
		The result is a Number, which is |TRUE| if a buffer called
		{buf} exists and is loaded (shown in a window or hidden).
		The {buf} argument is used like with |bufexists()|.

                Parameters: ~
                  • {buf} (`any`)

                Return: ~
                  (`0|1`)

bufname([{buf}])                                                     *bufname()*
		The result is the name of a buffer.  Mostly as it is displayed
		by the `:ls` command, but not using special names such as
		"[No Name]".
		If {buf} is omitted the current buffer is used.
		If {buf} is a Number, that buffer number's name is given.
		Number zero is the alternate buffer for the current window.
		If {buf} is a String, it is used as a |file-pattern| to match
		with the buffer names.  This is always done like 'magic' is
		set and 'cpoptions' is empty.  When there is more than one
		match an empty string is returned.
		"" or "%" can be used for the current buffer, "#" for the
		alternate buffer.
		A full match is preferred, otherwise a match at the start, end
		or middle of the buffer name is accepted.  If you only want a
		full match then put "^" at the start and "$" at the end of the
		pattern.
		Listed buffers are found first.  If there is a single match
		with a listed buffer, that one is returned.  Next unlisted
		buffers are searched for.
		If the {buf} is a String, but you want to use it as a buffer
		number, force it to be a Number by adding zero to it: >vim
			echo bufname("3" + 0)
<		If the buffer doesn't exist, or doesn't have a name, an empty
		string is returned. >vim
			echo bufname("#")	" alternate buffer name
			echo bufname(3)		" name of buffer 3
			echo bufname("%")	" name of current buffer
			echo bufname("file2")	" name of buffer where "file2" matches.
<

                Parameters: ~
                  • {buf} (`integer|string?`)

                Return: ~
                  (`string`)

bufnr([{buf} [, {create}]])                                            *bufnr()*
		The result is the number of a buffer, as it is displayed by
		the `:ls` command.  For the use of {buf}, see |bufname()|
		above.
		If the buffer doesn't exist, -1 is returned.  Or, if the
		{create} argument is present and TRUE, a new, unlisted,
		buffer is created and its number is returned.
		bufnr("$") is the last buffer: >vim
			let last_buffer = bufnr("$")
<		The result is a Number, which is the

Title: Vimscript Built-in Functions: Buffer Loading Status and Name Retrieval
Summary
This section describes the `bufloaded()`, `bufname()`, and `bufnr()` functions in Vimscript. `bufloaded()` checks if a buffer is loaded. `bufname()` retrieves the name of a buffer, handling buffer numbers, strings as file patterns, and special buffer names. `bufnr()` returns the buffer number, and optionally creates a new buffer if it doesn't exist.