Module vpe.wrappers¶
Wrappers around the built-in Vim Python types.
You should not normally need to import this module directly.
Command¶
- class vpe.wrappers.Command(name)¶
Wrapper to invoke a Vim command as a function.
The
Commands
creates instances of this; direct instantiation by users is not intended.Invocation takes the form of:
func(arg[, arg[, arg...]], [bang=<flag>], [a=<start>], [b=<end>], [modifiers]) func(arg[, arg[, arg...]], [bang=<flag>], [lrange=<range>], [modifiers])
The command is invoked with the arguments separated by spaces. Each argument is formatted as by repr(). If the bang keyword argument is true then a ‘!’ is appended to the command. A range of lines may be set using the a and b arguments or lrange. The a and b arguments are used in preference to the lrange argument. If only b is supplied then a is set to ‘.’ (the current line). Additional modifiers keyword arguments, such as ‘vertical’ are also supported; see details below.
The a and b values may be strings or numbers. The lrange argument may be a string (e.g. ‘2,7’,a vim.Range object, a standard Python range object or a tuple.
Parameters
- args
All non-keyword arguments form plain arguments to the command.
- bang
If set then append ‘!’ to the command.
- lrange
This may be a 2-tuple/list (specifying to (a, b)), a Python range object (specifying range(a - 1, b)) or a simple string range ‘a,b’. This argument is ignored if either a or b is provided.
- a
The start line.
- b
The end line (forming a range with a).
- vertical
Run with the vertical command modifier.
- aboveleft
Run with the aboveleft command modifier.
- belowright
Run with the belowright command modifier.
- topleft
Run with the topleft command modifier.
- botright
Run with the botright command modifier.
- keepalt
Run with the keepalt command modifier. Default = True.
- preview
For debugging. Do not execute the command, but return what would be passed to vim.command.
Commands¶
- class vpe.wrappers.Commands¶
A namespace for the set of Vim commands.
A single instance of this class is made available as
vpe.commands
.This class provides functions for a majority of Vim’s commands, often providing a cleaner mechanism compared to python-command. For example:
from vpe import commands commands.edit('README.txt') # Start editing README.txt commands.print(a=10, b=20) # Print lines 1 to 20 commands.print(lrange=(10, 20)) # Print lines 1 to 20 commands.write(bang=True) # Same as :w! commands.split(vertical=True) # Split current window vertically
Each command function is actually an instance of the
Command
class. See its description for details of the arguments.Most commands that can be entered at the colon prompt are supported. Structural parts of vim-script (such as function, while, try, etc) are excluded.
The vpe, vpe.mapping and vpe.syntax modules provides some functions and classes provide alternatives for some commands. You are encouraged to use these alternatives in preference to the equivalent functions provided here. The following is a summary of the alternatives.
vpe.AutoCmdGroup
A replacement for augroup and autocmd.
vpe.highlight
Provides keyword style arguments. See also the
vpe.syntax
module.vpe.error_msg
Writes a message with error highlightling, but does not raise a vim.error.
vpe.mapping
This provides functions to make key mappings that are handled by Python functions.
vpe.syntax
Provides a set of classes, functions and context managers to help define syntax highlighting.
See also:
vpe.pedit
.