A Guide to Unix Using Linux
Fourth Edition
Chapter 3
Mastering Editors
Objectives
• Explain the basics of UNIX/Linux files, including
ASCII, binary, and executable files
• Understand the types of editors
• Create and edit files using the vi editor
• Create and edit files using the Emacs editor
A Guide to Unix Using Linux, Fourth Edition 2
Understanding UNIX/Linux Files
• Almost everything you create in UNIX/Linux is
stored in a file
• Bit: binary digit
– In one of two states: 0 or 1
• Machine language: exclusive use of 0s and 1s as a
way to communicate with computer
– Used by earliest programmers
A Guide to Unix Using Linux, Fourth Edition 3
ASCII Text Files
• Byte (binary term): string of eight bits
• A byte can be configured into fixed patterns of bits
– ASCII: American Standard Code for Information
Interchange
• 256 different characters
– Unicode
• Supports up to 65,536 characters
• Text files: contain nothing but printable characters
• Binary files: contain nonprintable characters
– Example: machine instructions
A Guide to Unix Using Linux, Fourth Edition 4
A Guide to Unix Using Linux, Fourth Edition 5
Binary Files
• Some things cannot be represented with ASCII
codes
• Binary files are used instead
– Example: graphic files include bit patterns
• Bitmap: made of rows and columns of dots
A Guide to Unix Using Linux, Fourth Edition 6
Executable Program Files
• Text files containing program code are compiled
into machine-readable language
• Scripts are files containing commands
– Typically interpreted, not compiled
• Executables: compiled and interpreted files that
can be run
A Guide to Unix Using Linux, Fourth Edition 7
Using Editors
• Editor: program for creating and modifying files
containing source code, text, data, memos, etc.
• Text editor: a simplified word-processing program
– Used to create and edit documents
• Two text editors normally included in UNIX/Linux
are screen editors
– vi
– Emacs
• Line editor: works with one line (or group of lines)
at a time
A Guide to Unix Using Linux, Fourth Edition 8
Using the vi Editor
• vi is a visual editor
• vi is also a modal editor
– Supports three modes
• Insert mode
– Accessed by typing “i”
• Command mode
– Accessed by typing Esc
• Extended (ex) command set mode
– Accessed by typing “:” in command mode
A Guide to Unix Using Linux, Fourth Edition 9
Creating a New File in the vi Editor
A Guide to Unix Using Linux, Fourth Edition 10
Inserting Text
• When you start vi, you are in command mode
• To insert text in your file, switch to insert mode
– Use i (insert) command
• To return to command mode, press Esc
A Guide to Unix Using Linux, Fourth Edition 11
Repeating a Change
• Use a period (.) to repeat the most recent change
you made
– Repeat command
– Works in command mode
A Guide to Unix Using Linux, Fourth Edition 12
Moving the Cursor
• To move cursor use arrow keys (command/insert
mode) or (in command mode) use:
A Guide to Unix Using Linux, Fourth Edition 13
Deleting Text
• Deletion commands available (command mode)
• dd is used for “cutting” text
– Use “yank” (yy) command for “copying” text
A Guide to Unix Using Linux, Fourth Edition 14
Undoing a Command
• Type u to use the undo command
• Example:
– If you delete a few lines from a file by mistake, type u
to restore the text
A Guide to Unix Using Linux, Fourth Edition 15
Searching for a Pattern
• To search forward for a pattern of characters:
– Type a forward slash (/)
– Type the pattern you are seeking
– Press Enter
• Examples: /\<top, /s..n, /pas[st], /!$
A Guide to Unix Using Linux, Fourth Edition 16
Searching and Replacing
• Screen-oriented commands execute at the
location of the cursor
• Line-oriented commands require you to specify
an exact location (an address) for the operation
– Preceded by a colon (:)
– Operate in ex mode
– Used for commands that perform more than one
action
• Example: searching and replacing
:1,$s/insure/ensure/g
A Guide to Unix Using Linux, Fourth Edition 17
Saving a File and Exiting vi
• To save file without exiting, use :w
• To save and exit, use :wq, :x, ZZ (command mode)
A Guide to Unix Using Linux, Fourth Edition 18
Adding Text from Another File
• To copy entire contents of one file into another file:
– Use vi to edit the file you would like to copy into
– Use the command :r filename
• filename is the name of the file that contains the
information you want to copy
A Guide to Unix Using Linux, Fourth Edition 19
Leaving vi Temporarily
• To launch a shell or execute other commands from
within vi, use :!
– Example:
• :!cal
• To run several command-line commands in a
different shell without closing vi session
– Use Ctrl+z to display the command line
– Type fg to go back to vi
A Guide to Unix Using Linux, Fourth Edition 20
Leaving vi Temporarily (continued)
A Guide to Unix Using Linux, Fourth Edition 21
Changing Your Display While Editing
• To turn on line numbering, use :set number
– Example: deleting lines 4 through 6
• :4,6d
A Guide to Unix Using Linux, Fourth Edition 22
Copying or Cutting and Pasting
• The command yy copies (yanks) a specified
number of lines
– To cut the lines, use dd
– Lines are placed in clipboard
• Use p to paste the clipboard contents
A Guide to Unix Using Linux, Fourth Edition 23
Printing Text Files
• To print a file, use the lpr (line print) shell command
– Example:
• :!lpr -P lp2 accounts
A Guide to Unix Using Linux, Fourth Edition 24
Canceling an Editing Session
• Canceling an editing session will discard all the
changes you have made
• Or, save changes you made since last using :w
– Saves file without exiting vi
A Guide to Unix Using Linux, Fourth Edition 25
Getting Help in vi
• Use the help command
– :help
• Other alternatives:
– man vi
• From the command line
– :!man vi
• From vi (command mode)
A Guide to Unix Using Linux, Fourth Edition 26
Using the Emacs Editor
• Emacs is a popular UNIX/Linux text editor
– Not modal
– More complex than vi
– More consistent than vi
– Sophisticated macro language
• Macro: set of commands that automates a complex
task
• Uses: read mail, edit contents of directories, etc.
– Powerful command syntax
– Extensible
A Guide to Unix Using Linux, Fourth Edition 27
Using the Emacs Editor (continued)
A Guide to Unix Using Linux, Fourth Edition 28
Using the Emacs Editor (continued)
A Guide to Unix Using Linux, Fourth Edition 29
Creating a New File in Emacs
A Guide to Unix Using Linux, Fourth Edition 30
Navigating in Emacs
• To create a new file: emacs filename
• To navigate in the file, use the cursor movement
keys or Ctrl/Alt key combinations
– Example: Alt+f
• To save your work:
– Use File menu
– Use the save icon
– Press Ctrl+x, Ctrl+s
• To exit: use menu, icon, or Ctrl+x, Ctrl+c
A Guide to Unix Using Linux, Fourth Edition 31
Deleting Information
• Del or Backspace keys delete individual characters
• Ctrl+k deletes to the end of a line
• To undo a deletion, use Ctrl+x, u
– Repeatedly undoes each deletion
A Guide to Unix Using Linux, Fourth Edition 32
Copying, Cutting, and Pasting Text
• To Copy-Paste or Cut-Paste:
– Mark the text
• Position cursor at the beginning, and Ctrl+Spacebar
• Navigate to the end of the text you want to include:
– Alt+w copies the text
– Ctrl+w cuts the text
– To paste, move to where you want to place the text
• Ctrl+y (the yank command)
A Guide to Unix Using Linux, Fourth Edition 33
Searching in Emacs
• One way to search in Emacs is to:
– Press Ctrl+s
– Entering string to find (on status line)
– Pressing Ctrl+s repeatedly to find each occurrence
• Use Ctrl+r to search backward
• Other alternatives:
– Use search forward for a string icon
– On the menu: Edit Search Search
A Guide to Unix Using Linux, Fourth Edition 34
Reformatting a File
• Alt+q turns on word wrap feature
– Lines automatically wrap around from one line to the
next
A Guide to Unix Using Linux, Fourth Edition 35
Getting Help in Emacs
• Emacs comes with extensive documentation and a
tutorial
– Tutorial is useful for getting up to speed quickly
• Click Help menu Emacs Tutorial
• Or (in most versions), type Ctrl+h and then type t
– To view general Emacs documentation:
• Ctrl+h (press one or two times)
• Or, man emacs at command line
A Guide to Unix Using Linux, Fourth Edition 36
Summary
• Bytes: computer characters (a series of bits) stored
using numeric codes
• The vi editor is popular among UNIX/Linux users
– Three modes: insert (i), command (Esc), and ex (Esc :)
– With vi, you edit a copy of the file placed in memory
• File is not altered until you save it on disk
• Emacs is a popular alternative to vi
– Supports powerful command syntax and is extensible
– Insert text simply by typing
– Sophisticated macro language
A Guide to Unix Using Linux, Fourth Edition 37
Command Summary
A Guide to Unix Using Linux, Fourth Edition 38
Command Summary (continued)
A Guide to Unix Using Linux, Fourth Edition 39