80 likes | 219 Views
CS 497C – Introduction to UNIX Lecture 10: The vi/vim Editor. Chin-Chih Chang chang@cs.twsu.edu. String Search. vi supports two forms of searches: Search for a string or a regular expression in the entire file. Search for a single character in the current line. Search commands in vi :
E N D
CS 497C – Introduction to UNIXLecture 10: The vi/vim Editor Chin-Chih Changchang@cs.twsu.edu
String Search • vi supports two forms of searches: • Search for a string or a regular expression in the entire file. • Search for a single character in the current line. • Search commands in vi: • /str – searches forward for pattern str. • ?str – searches backward for pattern str. • n – repeats search in the same direction. • N – repeats search in the opposite direction. • fch – moves cursor forward to first occurrence of character ch in the current line.
String Search • Fch – moves cursor backward to first occurrence of character ch in the current line. • tch – moves cursor forward onto but before first occurrence of character ch in the current line. • Tch – moves cursor backward onto but before first occurrence of character ch in the current line. • ; - repeats search in the same direction made with f, F, t, or T. • , - repeats search in a direction opposite to that made with f, F, t, or T.
Searching with Regular Expressions • vi accepts a generalized pattern containing some special characters (metacharacters) as the search expression. • This pattern is called a regular expression and is used to match a group of similar strings. • The regular expression characters used by vi :
Searching with Regular Expressions • * - matches zero or more occurrences of the previous character. • [pqr] – matches a single character which is either a p, q, or r. • [^pqr] – matches a single character which is not a p, q, or r. • . – matches a single character. • ^pat – matches pattern pat at beginning of line. • \<pat – matches pattern pat at beginning of a word. • pat\> - matches pattern pat at end of a word.
Search and Replace (:s) • Search and replace commands in vi : • :n1,n2s/s1/s2 – replaces first occurrence of string or regular expression s1 with string s2 in lines n1 to n2. • :1,10s/find/look/g – replaces all occurrences of find with look in lines 1 to 10. • :.,$s/find/look/gc – interactively replaces find with look from current line through the end. • :s – repeats the last substitution on the current line (Linux only).
Handling Multiple Files • vi uses the Last Line Mode to handle multiple files and buffers. • These are advanced file handling commands: • :r note – reads file note below current line. • :r !date – reads output of date between current line. • e note – stops editing current fine, and edits file note. • e! note – stops editing, but after abandoning changes made to current file.
Handling Multiple Files • :e! – loads last saved edition of current file. • [Ctrl-^]– returns to most recently edited file. • e# – returns to most recently edited file. • n – edits next file (when vi is invoked with multiple filenames). • rew – rewinds file list to start editing first file (when vi is invoked with multiple filenames). • You can split the screen into multiple windows in vim. • :sp – splits the window. • [Ctrl-w][Ctrl-w] – moves between windows.