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.