| Nächste Überarbeitung | Vorhergehende Überarbeitung |
| pub:vim-essential-commands [2013/08/13 07:54] – angelegt Marco Krage | pub:vim-essential-commands [2013/08/21 13:16] (aktuell) – Marco Krage |
|---|
| |
| ===== Basics ===== | ===== Basics ===== |
| | '':e filename'' | Open filename for edition | | | '':e filename'' | Open //filename// for edition | |
| | '':w'' | Save file | | | '':w'' | Save file | |
| | '':q'' | Exit Vim | | | '':q'' | Exit Vim | |
| | '':q!'' | Quit without saving | | | '':q!'' | Quit without saving | |
| | '':x'' | Write file (if changes has been made) and exit | | | '':x'' | Write file (if changes has been made) and exit | |
| | '':sav filename'' | Saves file as filename | | | '':sav filename'' | Saves file as //filename// | |
| | ''.'' | Repeats the last change made in normal mode | | | ''.'' | Repeats the last change made in normal mode | |
| | ''5.'' | Repeats 5 times the last change made in normal mode | | | ''5.'' | Repeats 5 times the last change made in normal mode | |
| | ''b'' | move the cursor to the begining of the word | | | ''b'' | move the cursor to the begining of the word | |
| | ''0'' | move the cursor to the begining of the line | | | ''0'' | move the cursor to the begining of the line | |
| | ''G'' | move the cursor to the end of the line | | | ''$'' | move the cursor to the end of the line | |
| | | ''G'' | move the cursor to the end of the file | |
| | ''gg'' | move the cursor to the begining of the file | | | ''gg'' | move the cursor to the begining of the file | |
| | ''L'' | move the cursor to the end of the file | | | ''L'' | move the cursor to the bottom of the screen | |
| | '':59'' | move cursor to line 59. Replace 59 by the desired line number. | | | '':59'' | move cursor to line //59//. Replace //59// by the desired line number. | |
| | ''20|'' | move cursor to column 20. | | | ''20|'' | move cursor to column //20//. | |
| | ''%'' | Move cursor to matching parenthesis | | | ''%'' | Move cursor to matching parenthesis | |
| | ''[['' | Jump to function start | | | ''[['' | Jump to function start | |
| |
| ===== Search ===== | ===== Search ===== |
| | ''/word'' | Search word from top to bottom | | | ''/word'' | Search //word// from top to bottom | |
| | ''?word'' | Search word from bottom to top | | | ''?word'' | Search //word// from bottom to top | |
| | ''| *'' | Search the word under cursor | | | ''| *'' | Search the word under cursor | |
| | ''/\cstring'' | Search STRING or string, case insensitive | | | ''/\cstring'' | Search //STRING// or //string//, case insensitive | |
| | ''| /jo[ha]n'' | Search john or joan | | | ''| /jo[ha]n'' | Search //john// or //joan// | |
| | ''| /\< the'' | Search the, theatre or then | | | ''| /\< the'' | Search //the//, //theatre// or //then// | |
| | ''/the\>'' | Search the or breathe | | | ''/the\>'' | Search //the// or //breathe// | |
| | ''/\< the\>'' | Search the | | | ''/\< the\>'' | Search //the// | |
| | ''/\< ¦.\>'' | Search all words of 4 letters | | | ''/\< ¦.\>'' | Search all words of 4 letters | |
| | ''/\/'' | Search fred but not alfred or frederick | | | ''/\/'' | Search //fred// but not //alfred// or //frederick// | |
| | ''| /fred\|joe'' | Search fred or joe | | | ''| /fred\|joe'' | Search //fred// or //joe// | |
| | ''/\<\d\d\d\d\>'' | Search exactly 4 digits | | | ''/\<\d\d\d\d\>'' | Search exactly 4 digits | |
| | ''/^\n\{3}'' | Find 3 empty lines | | | ''/^\n\{3}'' | Find 3 empty lines | |
| | '':bufdo /searchstr/'' | Search in all open files | | | '':bufdo /searchstr/'' | Search in all open files | |
| | ''bufdo %s/something/somethingelse/g'' | Search something in all the open buffers and replace it with somethingelse | | | ''bufdo %s/something/somethingelse/g'' | Search //something// in all the open buffers and replace it with //somethingelse// | |
| |
| ===== Replace ===== | ===== Replace ===== |
| | '':%s/old/new/g'' | Replace all occurences of old by new in file | | | '':%s/old/new/g'' | Replace all occurences of //old// by //new// in file | |
| | '':%s/onward/forward/gi'' | Replace onward by forward, case unsensitive | | | '':%s/onward/forward/gi'' | Replace onward by forward, case unsensitive | |
| | '':%s/old/new/gc'' | Replace all occurences with confirmation | | | '':%s/old/new/gc'' | Replace all occurences with confirmation | |
| | '':2,35s/old/new/g'' | Replace all occurences between lines 2 and 35 | | | '':2,35s/old/new/g'' | Replace all occurences between lines 2 and 35 | |
| | '':5,$s/old/new/g'' | Replace all occurences from line 5 to EOF | | | '':5,$s/old/new/g'' | Replace all occurences from line 5 to EOF | |
| | '':%s/^/hello/g'' | Replace the begining of each line by hello | | | '':%s/^/hello/g'' | Replace the begining of each line by //hello// | |
| | '':%s/$/Harry/g'' | Replace the end of each line by Harry | | | '':%s/$/Harry/g'' | Replace the end of each line by //Harry// | |
| | '':%s/onward/forward/gi'' | Replace onward by forward, case unsensitive | | | '':%s/onward/forward/gi'' | Replace //onward// by //forward//, case unsensitive | |
| | ''<nowiki>:%s/ *$//g</nowiki>'' | Delete all white spaces | | | ''<nowiki>:%s/ *$//g</nowiki>'' | Delete all white spaces | |
| | '':g/string/d'' | Delete all lines containing string | | | '':g/string/d'' | Delete all lines containing //string// | |
| | '':v/string/d'' | Delete all lines containing which didn’t contain string | | | '':v/string/d'' | Delete all lines containing which didn’t contain //string// | |
| | '':s/Bill/Steve/'' | Replace the first occurence of Bill by Steve in current line | | | '':s/Bill/Steve/'' | Replace the first occurence of Bill by Steve in current line | |
| | '':s/Bill/Steve/g'' | Replace Bill by Steve in current line | | | '':s/Bill/Steve/g'' | Replace //Bill// by //Steve// in current line | |
| | '':%s/Bill/Steve/g'' | Replace Bill by Steve in all the file | | | '':%s/Bill/Steve/g'' | Replace //Bill// by //Steve// in all the file | |
| | ''<nowiki>:%s/^M//g</nowiki>'' | Delete DOS carriage returns (<nowiki>^M</nowiki>) | | | ''<nowiki>:%s/^M//g</nowiki>'' | Delete DOS carriage returns (<nowiki>^M</nowiki>) | |
| | '':%s/\r/\r/g'' | Transform DOS carriage returns in returns | | | '':%s/\r/\r/g'' | Transform DOS carriage returns in returns | |
| |
| ===== Read/Write files ===== | ===== Read/Write files ===== |
| | '':1,10 w outfile'' | Saves lines 1 to 10 in outfile | | | '':1,10 w outfile'' | Saves lines 1 to 10 in //outfile// | |
| | '':1,10 w >> outfile'' | Appends lines 1 to 10 to outfile | | | '':1,10 w >> outfile'' | Appends lines 1 to 10 to //outfile// | |
| | '':r infile'' | Insert the content of infile | | | '':r infile'' | Insert the content of //infile// | |
| | '':23r infile'' | Insert the content of infile under line 23 | | | '':23r infile'' | Insert the content of //infile// under line 23 | |
| |
| ===== File explorer ===== | ===== File explorer ===== |
| |
| ===== Interact with Unix ===== | ===== Interact with Unix ===== |
| | '':!pwd'' | Execute the pwd unix command, then returns to Vi | | | '':!pwd'' | Execute the //pwd// unix command, then returns to Vi | |
| | ''!!pwd'' | Execute the pwd unix command and insert output in file | | | ''!!pwd'' | Execute the //pwd// unix command and insert output in file | |
| | '':sh'' | Temporary returns to Unix | | | '':sh'' | Temporary returns to Unix | |
| | ''$exit'' | Retourns to Vi | | | ''$exit'' | Retourns to Vi | |
| | '':tabdo %s/foo/bar/g'' | Execute a command in all tabs | | | '':tabdo %s/foo/bar/g'' | Execute a command in all tabs | |
| | '':tab ball'' | Puts all open files in tabs | | | '':tab ball'' | Puts all open files in tabs | |
| | '':new abc.txt'' | Edit abc.txt in new window | | | '':new abc.txt'' | Edit //abc.txt// in new window | |
| |
| ===== Window spliting ===== | ===== Window spliting ===== |
| | ''10 ctrl-w+'' | Add 10 lines to current window | | | ''10 ctrl-w+'' | Add 10 lines to current window | |
| | '':vsplit file'' | Split window vertically | | | '':vsplit file'' | Split window vertically | |
| | '':sview file'' | Same as :split in readonly mode | | | '':sview file'' | Same as **:split** in readonly mode | |
| | '':hide'' | Close current window | | | '':hide'' | Close current window | |
| | '':nly'' | Close all windows, excepted current | | | '':nly'' | Close all windows, excepted current | |
| | ''Ctrl+n Ctrl+p (in insert mode)'' | Complete word | | | ''Ctrl+n Ctrl+p (in insert mode)'' | Complete word | |
| | ''Ctrl+x Ctrl+l'' | Complete line | | | ''Ctrl+x Ctrl+l'' | Complete line | |
| | '':set dictionary=dict'' | Define dict as a dictionnary | | | '':set dictionary=dict'' | Define //dict// as a dictionnary | |
| | ''Ctrl+x Ctrl+k'' | Complete with dictionnary | | | ''Ctrl+x Ctrl+k'' | Complete with dictionnary | |
| |
| ===== Marks ===== | ===== Marks ===== |
| | ''m {a-z}'' | Marks current position as {a-z} | | | ''m {a-z}'' | Marks current position as //{a-z}// | |
| | ''\' {a-z}'' | Move to position {a-z} | | | ''\' {a-z}'' | Move to position //{a-z}// | |
| | ''\'\''' | Move to previous position | | | ''\'\''' | Move to previous position | |
| |
| ===== Abbreviations ===== | ===== Abbreviations ===== |
| | '':ab mail mail@provider.org'' | Define mail as abbreviation of mail@provider.org | | | '':ab mail mail@provider.org'' | Define mail as abbreviation of //mail@provider.org// | |
| |
| ===== Text indent ===== | ===== Text indent ===== |