viper: Shell Commands
4.6 Shell Commands
==================
The symbol ‘%’ is used in Ex shell commands to mean current file. If
you want a ‘%’ in your command, it must be escaped as ‘\%’. However if
‘%’ is the first character, it stands as the address for the whole file.
Similarly, ‘#’ expands to the previous file. The previous file is the
first file in ‘:args’ listing. This defaults to the previous file in
the VI sense if you have one window.
Symbols ‘%’ and ‘#’ are also used in the Ex commands ‘:e’ and ‘:r
<shell-cmd>’. The commands ‘:w’ and the regular ‘:r <file>’ command
don’t support these meta symbols, because file history is a better
mechanism.
‘:sh’
Execute a subshell in another window
‘:[x,y]!<cmd>’
Execute a shell <cmd> [on lines x through y; % is replace by
current file, \% is changed to %
‘:[x,y]!! [<args>]’
Repeat last shell command [and append <args>].
‘:!<cmd>’
Just execute command and display result in a buffer.
‘:!! <args>’
Repeat last shell command and append <args>
‘<count> !<move><cmd>’
The shell executes <cmd>, with standard input the lines described
by <count><move>, next the standard output replaces those lines
(think of ‘cb’, ‘sort’, ‘nroff’, etc.).
‘<count> !!<cmd>’
Give <count> lines as standard input to the shell <cmd>, next let
the standard output replace those lines.
‘:[x,y] w !<cmd>’
Let lines x to y be standard input for <cmd> (notice the <sp>
between ‘w’ and ‘!’).
‘:<address>r !<cmd>’
Put the output of <cmd> after the line <address> (default current).
‘:<address>r <name>’
Read the file <name> into the buffer after the line <address>
(default current).
‘:make’
Run the make command in the current directory.