Home Explore Blog CI



neovim

7th chunk of `runtime/doc/if_pyth.txt`
1f686b85a6c820c7a3d80661883adfc15ebb714d504d56e10000000100000d46
 b:foo variable
	:py b.options["ff"] = "dos"	# set fileformat
	:py del b.options["ar"]		# same as :set autoread<

==============================================================================
Range objects						*python-range*

Range objects represent a part of a vim buffer.  You can obtain them in a
number of ways:
	- via vim.current.range (|python-current|)
	- from a buffer's range() method (|python-buffer|)

A range object is almost identical in operation to a buffer object.  However,
all operations are restricted to the lines within the range (this line range
can, of course, change as a result of slice assignments, line deletions, or
the range.append() method).

The range object attributes are:
	r.start		Index of first line into the buffer
	r.end		Index of last line into the buffer

The range object methods are:
	r.append(str)	Append a line to the range
	r.append(str, nr)  Idem, after line "nr"
	r.append(list)	Append a list of lines to the range
			Note that the option of supplying a list of strings to
			the append method differs from the equivalent method
			for Python's built-in list objects.
	r.append(list, nr)  Idem, after line "nr"

Range object type is available using "Range" attribute of vim module.

Example (assume r is the current range):
	# Send all lines in a range to the default printer
	vim.command("%d,%dhardcopy!" % (r.start+1,r.end+1))

==============================================================================
Window objects						*python-window*

Window objects represent vim windows.  You can obtain them in a number of ways:
	- via vim.current.window (|python-current|)
	- from indexing vim.windows (|python-windows|)
	- from indexing "windows" attribute of a tab page (|python-tabpage|)
	- from the "window" attribute of a tab page (|python-tabpage|)

You can manipulate window objects only through their attributes.  They have no
methods, and no sequence or other interface.

Window attributes are:
	buffer (read-only)	The buffer displayed in this window
	cursor (read-write)	The current cursor position in the window
				This is a tuple, (row,col).
	height (read-write)	The window height, in rows
	width (read-write)	The window width, in columns
	vars (read-only)	The window |w:| variables. Attribute is
				unassignable, but you can change window
				variables this way
	options (read-only)	The window-local options. Attribute is
				unassignable, but you can change window
				options this way. Provides access only to
				window-local options, for buffer-local use
				|python-buffer| and for global ones use
				|python-options|. If option is |global-local|
				and local value is missing getting it will
				return None.
	number (read-only)	Window number.  The first window has number 1.
				This is zero in case it cannot be determined
				(e.g. when the window object belongs to other
				tab page).
	row, col (read-only)	On-screen window position in display cells.
				First position is zero.
	tabpage (read-only)	Window tab page.
	valid (read-write)	True or False. Window object becomes invalid
				when corresponding window is closed.

The height attribute is writable only if the screen is split horizontally.
The width attribute is writable only if the screen is split vertically.

Window object type is available using "Window" attribute of vim module.

==============================================================================

Title: NVim Python Interface: Range and Window Objects - Attributes, Methods and Examples
Summary
This section continues the description of the NVim Python interface, focusing on Range and Window objects. It details the attributes and methods available for Range objects, including `r.start`, `r.end`, and `r.append`. It provides an example of sending all lines in a range to the printer. The section then describes Window objects, how to obtain them, and their attributes, such as `buffer`, `cursor`, `height`, `width`, `vars`, `options`, `number`, `row`, `col`, `tabpage`, and `valid`. It notes that Window objects have no methods and explains how to manipulate them through their attributes.