vi provides two ways to decrease the amount of typing you have to do: abbreviations and maps.
:map
x sequence
:unmap
x
Disable the sequence defined for x.
:map
List the characters that are currently mapped.
:map!
x sequence
Define character(s) x as a sequence of editing commands or text that will be recognized in insert mode.
:unmap!
x
Disable the sequence defined for the insert mode map x.
:map!
List the characters that are currently mapped for interpretation in insert mode.
For both command and insert mode maps, the map name x can take several forms:
When you type the character, vi executes the associated sequence of commands.
All the characters must be typed within one second. The
value of notimeout
changes the behavior.
#
n
Function key notation: a #
followed by a
digit n represents the sequence of characters
sent by the keyboard’s function key number
n.
To enter characters such as Escape (^[
) or
carriage return (^M
), first type
CTRL-V (^V
).
Named buffers provide yet another way to create “macros”—complex command sequences you can repeat with a few keystrokes. Here’s how it’s done:
Type a vi command sequence or an ex command preceded by a colon; return to command mode.
Delete the text into a named buffer.
Execute the buffer with the @
command
followed by the buffer letter.
The ex command
:@
buf-name
works
similarly.
Some versions of vi treat *
identically to @
when used from the
ex command line. In addition, if the buffer character
supplied after the @
or *
commands
is *
, the command is taken from the default (unnamed)
buffer.
Enable automatic indentation with the following command:
:set autoindent
Four special input sequences affect automatic indentation:
^T
Add one level of indentation; typed in insert mode
^D
Remove one level of indentation; typed in insert mode
Two commands can be used for shifting source code:
<<
Shift a line left eight spaces
>>
Shift a line right eight spaces
The default shift is the value of shiftwidth
,
usually eight spaces.
3.15.140.68