⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 if_python.txt

📁 MSYS在windows下模拟了一个类unix的终端
💻 TXT
字号:
*if_python.txt* For Vim version 5.8.  Last change: 1999 Oct 28		  VIM REFERENCE MANUAL    by Paul MooreThe Python Interface to Vim				*python* *Python*1. Commands			|python-commands|2. The vim module		|python-vim|3. Buffer objects		|python-buffer|4. Range objects		|python-range|5. Window objects		|python-window|{Vi does not have any of these commands}The Python interface only works when Vim was compiled with the |+python|feature.==============================================================================1. Commands						*python-commands*							*:python* *:py*:[range]py[thon] {stmt}	Execute Python statement {stmt}.  {not in Vi}							*:pyfile* *:pyf*:[range]pyf[ile] {file}	Execute the Python script in {file}.  {not in Vi}Both of these commands do essentially the same thing - they execute a piece ofPython code, with the "current range" |python-range| set to the given linerange.In the case of :python, the code to execute is specified on the command-line.In the case of :pyfile, the code to execute is the contents of the given file.Here are some examples					*python-examples*>	:python from vim import *>	:python from string import upper>	:python current.line = upper(current.line)>	:python print "Hello">	:python str = current.buffer[42](Note that changes - like the imports - persist from one command to the next,just like in the Python interpreter).==============================================================================2. The vim module					*python-vim*Python code gets all of its access to vim (with one exception - see|python-output| below) via the "vim" module. The vim module implements twomethods, three constants, and one error object.Overview>	print "Hello"			# displays a message>	vim.command(cmd)		# execute an ex command>	w = vim.windows[n]		# gets window "n">	cw = vim.current.window	# gets the current window>	b = vim.buffers[n]		# gets buffer "n">	cb = vim.current.buffer	# gets the current buffer>	w.height = lines		# sets the window height>	w.cursor = (row, col)		# sets the window cursor position>	pos = w.cursor			# gets a tuple (row, col)>	name = b.name			# gets the buffer file name>	line = b[n]			# gets a line from the buffer>	lines = b[n:m]			# gets a list of lines>	num = len(b)			# gets the number of lines>	b[n] = str			# sets a line in the buffer>	b[n:m] = [str1, str2, str3]	# sets a number of lines at once>	del b[n]			# deletes a line>	del b[n:m]			# deletes a number of linesMethods	vim.command(str)				*python-command*	Executes the vim (ex-mode) command str. Returns None.	Examples:>		vim.command("set tw=72")>		vim.command("%s/aaa/bbb/g")	To execute normal-mode commands, the following definition could be	used:>		def normal(str):>			vim.command("normal "+str)>		# Note the use of '...' to delimit a string containing double>		# quotes>		normal('"a2dd"aP')	vim.eval(str)					*python-eval*	Evaluates the expression str using the vim internal expression	evaluator (see |expression|). Returns the expression result as a	string.	Examples:>		text_width = vim.eval("'tw'")>		str = vim.eval("12+12")		# NB result is a string! Use>						# string.atoi() to convert to>						# a number.Error object	vim.error					*python-error*	All vim errors encountered by Python are raised as exceptions of type	vim.error.	Example:>		try:>			vim.command("put a")>		except vim.error:>			# nothing in register aConstants	Note that these are not actually constants - in theory you could	reassign them. But this is silly, as you would then lose access to the	vim objects referred to by the variables.	vim.buffers					*python-buffers*	A sequence object providing access to the list of vim buffers. The	following operations are supported:>		b = vim.buffers[i]	# Indexing (read-only)>		b in vim.buffers	# Membership test>		n = len(vim.buffers)	# Number of elements>		for b in vim.buffers:	# Sequential access	vim.windows					*python-windows*	A sequence object providing access to the list of vim windows. The	following operations are supported:>		w = vim.windows[i]	# Indexing (read-only)>		w in vim.windows	# Membership test>		n = len(vim.windows)	# Number of elements>		for w in vim.windows:	# Sequential access	vim.current					*python-current*	An object providing access (via specific attributes) to various	"current" objects available in vim:		vim.current.line	The current line (RW)		String		vim.current.buffer	The current buffer (RO)		Buffer		vim.current.window	The current window (RO)		Window		vim.current.range	The current line range (RO)	Range	The last case deserves a little explanation. When a range is specified	in the :python or :pyfile command, this range of lines is treated as	the "current range". A range is a bit like a buffer, but with all	access restricted to a subset of lines. See |python-range| for more	details.Output from Python					*python-output*	All output from Python code is displayed in the Vim message area.	Normal output is displayed as information messages, and error output	is displayed as error messages.	In implementation terms, this means that all output directed to	sys.stdout (including the output from print statements) is displayed	by vim as an information message, and all output directed to	sys.stderr (including error tracebacks) is displayed by vim as an	error message.							*python-input*	Input (via sys.stdin, including input() and raw_input()) is not	supported, and may cause the program to crash. This should probably be	fixed.==============================================================================3. Buffer objects					*python-buffer*Buffer objects represent vim buffers. They can be obtained in a number ofways:	- via vim.current.buffer (|python-current|)	- from indexing vim.buffers (|python-buffers|)	- from the "buffer" attribute of a window (|python-window|)Buffer objects have one read-only attribute - name - the full file name forthe buffer. They also have three methods (append, mark, and range) which aredescribed below.Buffer objects can also be treated as sequence objects. In this context, theyact as if they were lists (yes, they are mutable) of strings, with eachelement being a line of the buffer. All of the usual sequence operations,including indexing, index assignment, slicing and slice assignment, work asyou would expect. Note that the result of indexing (slicing) a buffer is astring (list of strings). This has one unusual consequence - b[:] is differentfrom b. In particular, "b[:] = None" deletes the whole of the buffer, whereas"b = None" merely updates the variable b, with no effect on the buffer.Buffer indexes start at zero, as is normal in Python. This differs from vimline numbers, which start from 1. This is particularly relevant when dealingwith marks (see below) which use vim line numbers.The buffer object methods are:	b.append(str)	Append a line to the buffer	b.append(list)	Append a list of lines to the buffer			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.	b.mark(name)	Return a tuple (row,col) representing the position			of the named mark (can also get the []"<> marks)	b.range(s,e)	Return a range object (see |python-range|) which			represents the part of the given buffer between line			numbers s and e (inclusive).Examples (assume b is the current buffer)>	print b.name		# write the buffer file name>	b[0] = "hello!!!"	# replace the top line>	b[:] = None		# delete the whole buffer>	del b[:]		# delete the whole buffer (same as above)>	b[0:0] = "add a line"	# add a line at the top>	del b[2]		# delete a line (the third)>	b.append("bottom")	# add a line at the bottom>	n = len(b)		# number of lines>	(row,col) = b.mark('a') # named mark>	r = b.range(1,5)	# a sub-range of the buffer==============================================================================4. Range objects					*python-range*Range objects represent a part of a vim buffer. They can be obtained in anumber 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 rangecan, of course, change as a result of slice assignments, line deletions, orthe range.append() method).Unlike buffers, ranges do not have a "name" attribute, nor do they have mark()or range() methods. They do have an append() method, however, which addsline(s) to the end of the range.==============================================================================5. Window objects					*python-window*Window objects represent vim windows. They can be obtained in a number ofways:	- via vim.current.window (|python-current|)	- from indexing vim.windows (|python-windows|)Window objects can only be manipulated through their attributes. They have nomethods, 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============================================================================== vim:tw=78:ts=8:sw=8:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -