Friday, 28 October 2011

SEARCH COMMANDS

Searching Text

A common occurrence in text editing is to replace one word or phase by another. To locate instances of particular sets of characters (or strings), use the following commands.

/string
 search forward for occurrence of string in text
 
?string
search backward for occurrence of string in text
 
n
move to next occurrence of search string

N
move to next occurrence of search string in opposite direction

/noun  <enter>
press n
search for same word in farward direction

fc  
find next charecter c on the current line

Fc
find previous charecter c on the current line

after searching try this ctrl+O and ctrl+I observe the differences

search and replace globally:


:[address]s/search_string/replace_word[/g]
searches a word in whole file and tries to replace all the line

:s/bigger/biggest  
replaces the string bigger on current line with biggest

:1,s/ch1/ch2/g 
searches and replace every occurance of ch1, before or on the  current line, with string ch2
    
:1,$s/ten/10/g 
searches and replace every occurance of ten,  with  10 globally
[eg: ten -> 10  ; tenthstand -> 10thstand; tenfor -> 10for]

:1,$s/<ten>/10/g
replace every occurance of word ten with the 10 
[1,$ with % in some version ]
[eg: ten -> 10 only ]




:.,.+10s/every/each/g
replace every occurance of the string "every" by the string "each" on the current line the tenth floolwing line
[eg:everything -> eachthing]


:s/\<short\>/"&"/
replace the word short  on the current line with "short" with quotation marts


5            -        line 5
77,100     -        lines 77 throug 10inclusive
.,$           -       from current line throuth end of the buffer
1,$          -       entire work buffer
%            -       entire work buffer
1,.           -       beginning of work buffer through current line
.,.+10       -       current line through 10th following line


saving a file and working with files: 



:r filename<Return>

         read file named filename and insert after current line
(the line with cursor)

:w<Return>
          write current contents to file named in original vi call

:w newfile<Return>
write current contents to a new file named newfile

:12,35w smallfile<Return>
write the contents of the lines numbered 12 through 35 to a new file named smallfile

:w! prevfile<Return>
write current contents over a pre-existing file named prevfile

some basic commands:

General Startup
        To use vi: vi filename
        To exit vi and save changes: ZZ   or  :wq
        To exit vi without saving changes: :q!
        To enter vi command mode: [esc]
 

Counts
        A number preceding any vi command tells vi to repeat
        that command that many times.


 Cursor Movement


        j       move down

        k       move up

        l       move right (spacebar)

        [return]   move to the beginning of the next line

        $       last column on the current line

        0       move cursor to the first column on the
               current line

        ^       move cursor to first nonblank column on the
               current line

        w       move to the beginning of the next word or
               punctuation mark

        W       move past the next space

        b       move to the beginning of the previous word
               or punctuation mark

        B       move to the beginning of the previous word,
               ignores punctuation

        e       end of next word or punctuation mark

        E       end of next word, ignoring punctuation

        H       move cursor to the top of the screen

        M       move cursor to the middle of the screen

        L       move cursor to the bottom of the screen




       G        move to the last line in the file

       xG       move to line x

       z+       move current line to top of screen

       z        move current line to the middle of screen

       z-       move current line to the bottom of screen

       ^F       move forward one screen

       ^B       move backward one line

       ^D       move forward one half screen

       ^U       move backward one half screen

       ^R       redraw screen
               ( does not work with VT100 type terminals )

       ^L       redraw screen
               ( does not work with Televideo terminals )
        r        replace character under cursor with next
               character type

        R        keep replacing character until [esc] is hit
         
         i        insert before cursor
         
         a        append after cursor

         A        append at end of line
open line above cursor and enter append mode



?       finds a word going backwards

/       finds a word going forwards

f       finds a character on the line under the

               cursor going forward

F       finds a character on the line under the
        cursor going backwards

t       find a character on the current line going
        forward and stop one character before it
 
T       find a character on the current line going
        backward and stop one character before it

;       repeat last f, F, t, T


.       repeat last command

u       undoes last command issued

U       undoes all commands on one line

xp      deletes first character and inserts after
               second (swap)

J       join current line with the next line

^G      display current line number

%       if at one parenthesis, will jump to its mate

mx      mark current line with character x

'x      find line marked with character x

NOTE: Marks are internal and not written to the file.



Any commands form the line editor ex can be issued
upon entering line mode.

To enter: type ':'
To exit: press[return] or [esc]

copies (reads) filename after cursor in file
currently editing

:r filename


:w      saves the current file without quitting


:#      move to line #
:$      move to last line of file

SHELL ESCAPE
executes 'cmd' as a shell command.
:!'cmd'
 
 

No comments:

Post a Comment