unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



edit(1)								      edit(1)



NAME

  edit - Edits a file line by line with	a simplified command set

SYNOPSIS

  edit [-c subcommand] [-lRv] [-wnumber] [+subcommand] [-] [file...]

  edit [-c subcommand] [-lRv] [-t tag] [file...]

  edit [-c subcommand] -r[file]	[-lRv] [file]

  The edit command provides a line editor designed for beginning users.

OPTIONS

  -l  Indents appropriately for	LISP code, and accepts the (, ), {, }, [, and
      ]	characters (parentheses, braces, and brackets) as text rather than
      interpreting them	as vi subcommands.  The	LISP modifier is active	in
      open or visual modes.

  -r[file]
      Recovers file after an editor or system crash.  If you do	not specify
      file, a list of all saved	files is displayed.

  -R  Sets the readonly	option,	preventing you from altering the file.

  -t tag
      Loads the	file that contains tag and positions the editor	at tag.	 To
      use this option, you must	first create a database	of function names and
      locations	using the ctags	command.

  -v  Invokes the visual editor. When the -v option is specified, an enlarged
      set of subcommands are available,	including screen editing and cursor
      movement features.  See vi.

  -wnumber
      Sets the default window size to number lines.

  -   Suppresses all interactive user feedback.	 If you	use this option, file
      input/output errors do not generate an error message.

  +subcommand
      Begins the edit with the specified editor	search or subcommand.  When
      subcommand is not	entered, a + (plus sign) sets the current line to the
      bottom of	the file.  Normally edit sets the current line to the last
      line of the file,	or to some specified tag or pattern.







DESCRIPTION

  The edit command is part of a	family of editors that also includes ed, ex,
  and vi. It is	a simplified version of	the ex editor, which itself is built
  on the ed line editor.

  To edit the contents of a file, enter:

       edit file

  If file is the name of an existing file, edit	copies it to a buffer and
  displays the number of lines and characters in it.  Then it displays a :
  (colon) prompt to show that it is ready to read subcommands from standard
  input.

  If file does not already exist, edit tells you this.	You can	give more
  than one file, in which case edit copies the first file into its buffer and
  stores the remaining filenames in an argument	list for later use.

  The edit command does	not make changes to the	file until you use the w sub-
  command to write the changes.

  Editing Modes


  The edit command operates in one of two modes:

  Command mode
      In command mode, the edit	editor recognizes and executes subcommands.
      When you start the editor, it is in command mode.

  Text input mode
      In text input mode, you can add text to the editing buffer.  You enter
      text input mode by using the a, c, or i subcommand. To exit text input
      mode (and	return to command mode), you enter a . (dot) alone at the
      beginning	of a line.

  Subcommand Syntax


  The general format of	an edit	subcommand is as follows:

  [address]subcommand[argument ...][count]

  If you do not	specify	an address, edit works on the current line.  When you
  start	the edit program, the current line is the last line in the buffer. As
  you edit the buffer, the current line	changes	to the last line affected by
  a subcommand.	(When edit reads a file	into its buffer, the last line
  affected by the process of reading is	the last line in the file.) If you
  add a	numeric	count to most subcommands, edit	works on the specified number
  of lines.

  The value for	address	can be a line number or	a pattern to be	matched	or,
  in some cases, a range of line numbers or patterns.  To specify a range,
  separate two line numbers or patterns	with a comma or	a semicolon (for
  example, 1,5 or 1;5).	 In a range, the second	address	must refer to a	line
  that follows the first addressed line	in the range.

  To work with different parts of a file, you must know	how to find out	the
  current line and how to address different lines in a file.






  Addressing Lines Within a File


  The simplest way to address a	line within a file is to use its line number.
  But this can be unreliable because line numbers change when you insert and
  delete lines.	 The edit command provides a way to search through the buffer
  for strings.	Given the following address, edit searches forward for pat-
  tern:

       /pattern/

  If given the following address, edit searches	backward for pattern:

       ?pattern?

  If a forward search reaches the end of the buffer without finding pattern,
  it continues the search at the beginning of the file until it	reaches	the
  current line.	 A backward search does	just the reverse.

  The following	characters have	special	meanings in these search patterns:

  ^   Matches the beginning of a line.

  $   Matches the end of a line.

  Thus,	you can	use /^pattern/ to search for patterns at the beginning of a
  line,	and /pattern$/ to search for patterns at the end of the	line. Lines
  can be addressed by their line numbers; for example, 11 refers to line 11
  of the buffer.  In addition, the current line	is addressed with a . (dot)
  and the last line in the buffer is addressed with a $	(dollar	sign).	This
  is useful when working with a	range of lines.	 For example, the following
  command displays all lines from the current line to the last line in the
  buffer:

       .,$print

  Do not confuse the meaning of	$ in text patterns, end	of line, with its
  meaning in addresses,	last line. Arithmetic with line	references is also
  possible, so that $-5	refers to the fifth line from the last and .+20
  refers to the	line 20	lines past the current line.  You can also use the =
  (equal sign) command to find out the line number of the current line or the
  last line, as	follows:

       .=
       $=

  To view the next line	in the buffer, press <&lt;Return>&gt;.	Press <&lt;Ctrl-d>&gt; to
  display the next half-screen of lines.

  Using	a Family of Editors


  As you become	more experienced with edit, you	might want to try the
  advanced features of one of the other	editors	in the family.	Because	edit
  is part of a family of editors, you can apply	your knowledge of edit to the
  other	editors	in the family.

  The ex editor	is a powerful interactive line editor.	The edit subcommands
  work the same	way in ex, but the editing environment is somewhat different.
  For example in edit, only the	characters ^ (circumflex), $ (dollar sign),
  and \	(backslash) have special meanings as pattern-matching characters;
  however, several additional characters also have special meanings in ex.




SUBCOMMANDS

  Unless otherwise noted, all subcommands work by default on the current
  line;	address	is optional.  You can use the full subcommand or its abbrevi-
  ation.  Subcommand abbreviations appear after	the command in the sections
  that follow.

  You can use the 1,$p subcommand to display the entire	contents of the
  buffer.

  The edit program recognizes and interprets the following subcommands when
  it displays the colon	prompt.

  Adding Text


  [address]append (a)
      Appends the text you type	after the current line,	if you do not specify
      an address.  If you specify an address, the a subcommand appends text
      after the	addressed line.	 If you	specify	address	0 (zero), the a	sub-
      command places the text at the beginning of the buffer. As you type
      your text, press <&lt;Return>&gt;	at the end of each line.  When you have
      entered all your text, enter a . (dot) alone at the start	of a line.
      This ends	text input mode	and returns to command mode.

  [address]insert (i)
      Places the given text before the specified line.	Enter a	. (dot)	to
      return to	command	mode.  The last	line input becomes the current line.

  Changing Text


  [address1[,address2]]change (c)
      Replaces the current line	or addressed line or lines with	the input
      text. Enter a . (dot) to return to command mode.	If any lines are
      input, the last input line becomes the new current line.

  Deleting Text


  [address1[,address2]]delete [buffer] (d)
      Removes the specified line or lines from the editing buffer.  The	line
      following	the last deleted line becomes the current line.	If you
      specify a	buffer by giving a letter from a to z, edit saves the speci-
      fied lines in that buffer	or, if the letter is uppercase,	appends	the
      lines to that buffer.

  Displaying Text and Determining the Current Line


  file [file] (f)
      Displays the current filename along with the following information:

	+  Whether it was modified since the last write.

	+  What	the current line is.

	+  How many lines are in the buffer.

	+  What	percentage of the way through the buffer the current line is.

	   Also, sets the current filename if file is specified.

  [address1[,address2]]number (nu)
      Displays each specified line or lines preceded by	its buffer line
      number.  The last	line displayed becomes the current line.

  [address1[,address2]]print (p)
      Displays the specified line or lines.  The last line displayed becomes
      the current line.

  [address]=
      Displays the line	number of the addressed	line.  If you do not specify
      an address, displays the line number of the last line.

  [address]z
      Displays a screen	of text, beginning with	the current or specified
      line.

  [address]z-
      Displays a screen	of text, with the specified (or	current) line at the
      bottom of	the screen.

  [address]z.
      Displays a screen	of text, with the specified (or	current) line in the
      middle of	the screen.

  Editing Another File


  edit file (e)
      Begins an	editing	session	on a new file.	The editor first checks	to
      see if the buffer	was modified since the last write subcommand.  If it
      has, edit	issues a warning and cancels the edit subcommand.  Otherwise,
      it deletes the complete contents of the editor buffer, makes the named
      file the current file, and displays the new filename.  After ensuring
      that this	file can be edited, it reads the file into its buffer.	If
      edit reads the file without error, it displays the number	of lines and
      characters that it read.	The last line read becomes the new current
      line.

  next [file] (n)
      Copies the next file in the command line argument	list to	the buffer
      for editing.

      You can edit a sequence or group of files.  You can use the next sub-
      command to edit each file	on the command line in turn, or	to specify a
      list of filenames	to edit	(using the shell pattern matching syntax)
      instead. The wildcard character %	represents the name of the current
      edit file	and can	be used	to form	filenames.  If file is specified, the
      command line argument list is replaced, and an edit command is per-
      formed on	the first file.

  Making Global	Changes


  [address1[,address2]]global/pattern/command ... (g)
      Marks each of the	specified lines	that matches the pattern, then car-
      ries out the specified subcommands (commands) on each marked line.

      A	single command or the first command in a subcommand list appears on
      the same line as global.	The remaining commands must appear on
      separate lines, where each line (except the last)	ends with a \
      (backslash).  The	default	subcommand is print.

      The subcommand list can include the append, insert, and change subcom-
      mands and	their associated input.	 In this case, if the ending period
      comes on the last	line of	the command list, you can omit it.  The	undo
      subcommand and the global	subcommand itself, however, cannot appear in
      the command list.	See also Substituting Text.


  Moving or Copying Text


  [address1[,address2]]move address3 (m)
      Repositions the specified	line or	lines to follow	address3. The first
      of the moved lines becomes the current line.  address1 and address2 are
      optional;	you must specify address3.

  [address1[,address2]]yank [buffer] (ya)
      Places the specified line	or lines in buffer (identified by a single
      alpha character name a to	z).

  [address]put buffer (pu)
      Retrieves	the contents of	the specified buffer and places	it after
      address.	If you do not specify a	buffer,	edit restores the last
      deleted or yanked	text.  Thus, you can use this subcommand together
      with delete to move lines	or with	yank to	duplicate lines	between
      files.

  Quitting an Editing Session


  quit (q)

  quit!	(q!)
      Ends the editing session.	 The quit command does not write the editor
      buffer to	a file;	if you have modified the contents of the buffer	since
      the last write, edit displays a warning message and does not end the
      session.	In this	case, either use the quit! subcommand to discard the
      buffer or	write the buffer and then quit.

  Saving Text


  [address1[,address2]]write file (w)
      Writes the contents of the specified line	or lines to file.  The
      default range is all lines in the	buffer.	 edit displays the number of
      lines and	characters that	it writes.  If you do not specify a file,
      edit uses	the current filename.  If file does not	exist, edit creates
      it.

  preserve (pre)
      Saves the	current	editor buffer as though	the system had just crashed.
      Use this command when a write subcommand has resulted in an error, and
      you do not know how to save your work.

  recover file (rec)
      Recovers file from the system save area. Use this	after a	system crash,
      or a preserve subcommand.

  Substituting Text


  [address1[,address2]]substitute/pattern/replacement/ (s)

  [address1[,address2]]substitute/pattern/replacement/g	(s)
      Replaces on each specified line the first	instance of pattern with the
      replacement pattern replacement.	If you add the global indicator	g, it
      replaces all instances of	pattern	on each	specified line.







  Undoing a Change


  undo (u)
      Reverses the changes made	in the buffer by the last buffer editing
      subcommand.  Note	that global subcommands	are considered a single	sub-
      command to an undo. You cannot undo a write or an	edit subcommand.

SEE ALSO

  Commands:  ed(1), ex(1), vi(1)