340 likes | 536 Views
Unix Editors. Prepared By: Bahjat Qazzaz. Unix Editors. What is a text editor? A text editor is a program which enables you to create and manipulate character data (text) in a computer file.
E N D
Unix Editors Prepared By: BahjatQazzaz
Unix Editors • What is a text editor? • A text editor is a program which enables you to create and manipulate character data (text) in a computer file. • A text editor is not a word processor although some text editors do include word processing facilities. • Text editors often require "memorizing" commands in order to perform editing tasks. The more you use them, the easier it becomes. There is a "learning curve" in most cases though.
Unix Editors • There are several standard text editors available on most UNIX systems: • ed - standard line editor • ex - extended line editor • vi - a visual editor; full screen; uses ed/ex line-mode commands for global file editing • sed - stream editor for batch processing of files
Unix Editors • In addition to these, other local "favorites" may be available: • emacs - a full screen editor and much more • pico - an easy "beginner's" editor • lots of others
Unix Editors: vi Editor • vi supplies commands for: • inserting and deleting text • replacing text • moving around the file • finding and substituting strings • cutting and pasting text • reading and writing to other files
Unix Editors: vi Editor • vi uses a "buffer" • While using vi to edit an existing file, you are actually working on a copy of the file that is held in a temporary buffer in your computer's memory. • If you invoked vi with a new filename, (or no file name) the contents of the file only exist in this buffer. • Saving a file writes the contents of this buffer to a disk file, replacing its contents. You can write the buffer to a new file or to some other file. • You can also decide not to write the contents of the buffer, and leave your original file unchanged.
Unix Editors: vi Editor • vi operates in two different "modes": • Command mode • vi starts up in this mode • Whatever you type is interpreted as a command - not text to be inserted into the file. • The command mode is the mode you need to be in if you want to "move around" the file
Unix Editors: vi Editor • vi operates in two different "modes": • Insert mode • This is the mode you use to type (insert) text. • There are several commands that you can use to enter this mode. • Once in this mode, whatever you type is interpreted as text to be included in the file. • Must press the ESC (escape) key to exit this mode and return to command mode
Unix Editors: vi Editor • Launching vi vi or vi filename- The filename can be the name of an existing file or the name of the file you want to create. view filename- Starts vi in "read only" mode. Allows you to look at a file without the risk of altering its contents.
Unix Editors: vi Editor Exiting vi :q - quit, if you have made any changes, vi will warn you of this, and you'll need to use one of the other quits. :w - write edit buffer to disk :w filename - write edit buffer to disk as filename :wq- write edit buffer to disk and quit ZZ - write edit buffer to disk and quit :q! - quit without writing edit buffer to disk
Unix Editors: vi Editor Positioning within text • By character • left arrow - left one character • right arrow - right one character • backspace - left one character • space - right one character • h - left one character • l - right one character
Unix Editors: vi Editor Positioning within text • By word • w - beginning of next word • nw- beginning of nth next word • b - back to previous word • nb- back to nth previous word • e - end of next word • ne- end of nth next word
Unix Editors: vi Editor Positioning within text • By line • down arrow - down one line • up arrow - up one line • j - down one line • k - up one line • + - beginning of next line down • - - beginning of previous line up • 0 - first column of current line (zero) • ^ - first character of current line • $ - last character of current line
Unix Editors: vi Editor Positioning within text • By block • ( - beginning of sentence • ) - end of sentence • { - beginning of paragraph • } - end of paragraph
Unix Editors: vi Editor Positioning within text • By screen • CTRL-f - forward 1 screen • CTRL-b - backward 1 screen • CTRL-d - down 1/2 screen • CTRL-u - up 1/2 screen • H - top line on screen • M - mid-screen • L - last line on screen
Unix Editors: vi Editor Positioning within text • Within file • nG- line n within file • 1G - first line in file • G - last line in file
Unix Editors: vi Editor Inserting text a - append text after cursor A - append text at end of line i- insert text before cursor I - insert text at beginning of line o - open a blank line after the current line for text input O - open a blank line before the current line for text input * Note: hit ESC (escape) key when finished inserting!
Unix Editors: vi Editor • Deleting text x - delete character at cursor dh - delete character before cursor nx - delete n characters at cursor dw- delete next word db - delete previous word dnw- delete n words from cursor dnb - delete n words before cursor d0 - delete to beginning of line
Unix Editors: vi Editor • Deleting text d$ - delete to end of line D - delete to end of line dd- delete current line d( - delete to beginning of sentence d) - delete to end of sentence d{ - delete to beginning of paragraph d} - delete to end of paragraph ndd - delete n lines (start at current line)
Unix Editors: vi Editor • Changing text cw- replace word with text cc - replace line with text c0 - change to beginning of line c$ - change to end of line C - change to end of line
Unix Editors: vi Editor • Changing text c( - change to beginning of sentence c) - change to end of sentence c{ - change to beginning of paragraph c} - change to end of paragraph r - overtype only 1 character R - overtype text until ESC is hit J - join two lines * Note: hit ESC (escape) key when finished changing!
Unix Editors: vi Editor • Copying lines • yy- "yank": copy 1 line into buffer nyy- "yank": copy n lines into buffer p - put contents of buffer after current line P - put contents of buffer before current line
Unix Editors: vi Editor • Moving lines (cutting and pasting) • ndd- delete n lines (placed in buffer) p - put contents of buffer after current line P - put contents of buffer before current line
Unix Editors: vi Editor • Searching / Substituting • /str- search forward for str ?str- search backward for str n - find next occurrence of current string N - repeat previous search in reverse direction
Unix Editors: vi Editor • The substitution command requires a line range specification. If it is omitted, the default is the current line only. The examples below show how to specify line ranges. :s/old/new - substitute new for first occurrence of old in current line :s/old/new/g - substitute new for all occurrences of old in current line :1,10s/old/new - substitute new for first occurrence of old in lines 1 - 10
Unix Editors: vi Editor • :.,$s/old/new - substitute new for first occurrence of old in remainder of file :.,+5s/old/new - substitute new for first occurrence of old in current line and next 5 lines :.,-5s/old/new - substitute new for first occurrence of old in current line and previous 5 lines :%s/old/new/g - substitute new for all occurrences of old in the entire file :%s/old/new/gc- interactively substitute new for all occurrences of old - will prompt for y/n response for each substitution.
Unix Editors: vi Editor • Miscellaneous commands • u - undo the last command (including undo) . - repeat last command xp- swap two adjacent characters m[a-z] - set a marker (a - z) '[a-z] - go to a previously set marker (a - z) :!command - execute specified UNIX command :r filename - read/insert contents of filename after current line. :1,100!fmt - reformat the first 100 lines :!fmt- reformat the entire file
Unix Editors: vi Editor • vi Options • You can change the way vi operates by changing the value of certain options which control specific parts of the vi environment. • To set an option during a vi session, use one of the commands below as required by the option: :set option_name :set option_name=value
Unix Editors: vi Editor • Some examples of the more common options are described below. :set all - shows all vi options in effect :set ai- set autoindent - automatically indents each line of text :set noai- turn autoindent off :set nu- set line numbering on :set nonu- turn line numbering off :set scroll=n - sets number of lines to be scrolled to n. Used by screen scroll commands.
Unix Editors: vi Editor • Some examples :set sw=n - set shiftwidth to n. Used by autoindentoption. :set wm=n - set wrapmargin to n. Specifies number of spaces to leave on right edge of the screen before wrapping words to next line. :set showmode- reminds you when you are inserting text. :set ic- ignore case of characters when performing a search.
Unix Editors: vi Editor • Options can be set permanently by putting them in a file called .exrc in your home directory. • A sample .exrc file appears below. • Note that you do not need the colon (:) as part of the option specification when you put the commands in a .exrc file. • Also note that you can put them all on one line. set nuai wm=5 showmodeic