viper: Multiple Files in Viper

 
 1.5 Multiple Files in Viper
 ===========================
 
 Viper can edit multiple files.  This means, for example that you never
 need to suffer through ‘No write since last change’ errors.  Some Viper
 elements are common over all the files.
 
 ‘Textmarkers’
      Textmarkers remember _files and positions_.  If you set marker ‘a’
      in file ‘foo’, start editing file ‘bar’ and type ‘'a’, then _YOU
      WILL SWITCH TO FILE ‘foo’_.  You can see the contents of a
      textmarker using the Viper command ‘[<a-z>’ where <a-z> are the
      textmarkers, e.g., ‘[a’ to view marker ‘a’ .
 ‘Repeated Commands’
      Command repetitions are common over files.  Typing ‘!!’ will repeat
      the last ‘!’ command whichever file it was issued from.  Typing ‘.’
      will repeat the last command from any file, and searches will
      repeat the last search.  Ex commands can be repeated by typing ‘:
      <RET>’.  Note: in some rare cases, that ‘: <RET>’ may do something
      dangerous.  However, usually its effect can be undone by typing
      ‘u’.
 ‘Registers’
      Registers are common to files.  Also, text yanked with ‘y’ can be
      put back (‘p’) into any file.  The Viper command ‘]<a-z>’, where
      <a-z> are the registers, can be used to look at the contents of a
      register, e.g., type ‘]a’ to view register ‘a’.
 
      There is one difference in text deletion that you should be aware
      of.  This difference comes from Emacs and was adopted in Viper
      because we find it very useful.  In Vi, if you delete a line, say,
      and then another line, these two deletions are separated and are
      put back separately if you use the ‘p’ command.  In Emacs (and
      Viper), successive series of deletions that are _not interrupted_
      by other commands are lumped together, so the deleted text gets
      accumulated and can be put back as one chunk.  If you want to break
      a sequence of deletions so that the newly deleted text could be put
      back separately from the previously deleted text, you should
      perform a non-deleting action, e.g., move the cursor one character
      in any direction.
 ‘Absolute Filenames’
      The current directory name for a file is automatically prepended to
      the file name in any ‘:e’, ‘:r’, ‘:w’, etc., command (in Emacs,
      each buffer has a current directory).  This directory is inserted
      in the minibuffer once you type space after ‘:e, r’, etc.  Viper
      also supports completion of file names and Ex commands (<TAB>), and
      it keeps track of command and file history (‘M-p’, ‘M-n’).
      Absolute filenames are required less often in Viper.
 
      You should be aware that Emacs interprets ‘/foo/bar//bla’ as ‘/bla’
      and ‘/foo/~/bar’ as ‘~/bar’.  This is designed to minimize the need
      for erasing file names that Emacs suggests in its prompts, if a
      suggested file name is not what you wanted.
 
      The command ‘:cd’ will change the default directory for the current
      Emacs buffer.  The Ex command ‘:e’ will interpret the filename
      argument in ‘csh’, by default.  SeeCustomization, if you want
      to change this.
 
 Currently undisplayed files can be listed using the ‘:ar’ command.  The
 command ‘:n’ can be given counts from the ‘:ar’ list to switch to other
 files.  For example, use ‘:n3’ to move to the third file in that list.