从别的网站看到的,感觉灰常有用,就转了!
|
自从70年代起,Vi一直是程序员最好的伙伴之一,无论你是Vi新手或者是老手,下面分类给出了100个有用的Vi命令,相信会对你有所帮助。
Basics
:e filename | Open filename for edition | :w | Save file | :q | Exit Vim | :w! | Exit Vim without saving |
Search
/word | Search word from top to bottom | ?word | Search word from bottom to top | /jo[ha]n | Search john or joan | /\< the | Search the, theatre or then | /the\> | Search the or breathe | /\< the\> | Search the | /\< ¦.\> | Search all words of 4 letters | /\/ | Search fred but not alfred or frederick | /fred\|joe | Search fred or joe | /\<\d\d\d\d\> | Search exactly 4 digits | /^\n\{3} | Find 3 empty lines | :bufdo /searchstr/ | Search in all open files |
Replace
:%s/old/new/g | Replace all occurences of old by new in file | :%s/old/new/gw | Replace all occurences with confirmation | :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 | :%s/^/hello/g | Replace the begining of each line by hello | :%s/$/Harry/g | Replace the end of each line by Harry | :%s/onward/forward/gi | Replace onward by forward, case unsensitive | :%s/ *$//g | Delete all white spaces | :g/string/d | Delete all lines containing 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/g | Replace Bill by Steve in current line | :%s/Bill/Steve/g | Replace Bill by Steve in all the file | :%s/\r//g | Delete DOS carriage returns (^M) | :%s/\r/\r/g | Transform DOS carriage returns in returns | :%s#<[^>]\+>##g | Delete HTML tags but keeps text | :%s/^\(.*\)\n\1$/\1/ | Delete lines which appears twice | Ctrl+a | Increment number under the cursor | Ctrl+x | Decrement number under cursor | ggVGg? | Change text to Rot13 |
Case
Vu | Lowercase line | VU | Uppercase line | g~~ | Invert case | vEU | Switch word to uppercase | vE~ | Modify word case | ggguG | Set all text to lowercase | :set ignorecase | Ignore case in searches | :set smartcase | Ignore case in searches excepted if an uppercase letter is used | :%s/\<./\u&/g | Sets first letter of each word to uppercase | :%s/\<./\l&/g | Sets first letter of each word to lowercase | :%s/.*/\u& | Sets first letter of each line to uppercase | :%s/.*/\l& | Sets first letter of each line to lowercase |
Read/Write files
:1,10 w outfile | Saves lines 1 to 10 in outfile | :1,10 w >> outfile | Appends lines 1 to 10 to outfile | :r infile | Insert the content of infile | :23r infile | Insert the content of infile under line 23 |
File explorer
:e . | Open integrated file explorer | :Sex | Split window and open integrated file explorer | :browse e | Graphical file explorer | :ls | List buffers | :cd .. | Move to parent directory | :args | List files | :args *.php | Open file list | :grep expression *.php | Returns a list of .php files contening expression | gf | Open file name under cursor |
Interact with Unix
:!pwd | Execute the pwd unix command, then returns to Vi | !!pwd | Execute the pwd unix command and insert output in file | :sh | Temporary returns to Unix | $exit | Retourns to Vi |
Alignment
:%!fmt | Align all lines | !}fmt | Align all lines at the current position | 5!!fmt | Align the next 5 lines |
Tabs
:tabnew | Creates a new tab | gt | Show next tab | :tabfirst | Show first tab | :tablast | Show last tab | :tabm n(position) | Rearrange tabs | :tabdo %s/foo/bar/g | Execute a command in all tabs | :tab ball | Puts all open files in tabs |
Window spliting
:e filename | Edit filename in current window | :split filename | Split the window and open filename | ctrl-w up arrow | Puts cursor in top window | ctrl-w ctrl-w | Puts cursor in next window | ctrl-w_ | Maximise current window | ctrl-w= | Gives the same size to all windows | 10 ctrl-w+ | Add 10 lines to current window | :vsplit file | Split window vertically | :sview file | Same as :split in readonly mode | :hide | Close current window | :nly | Close all windows, excepted current | :b 2 | Open #2 in this window |
Auto-completion
Ctrl+n Ctrl+p (in insert mode) | Complete word | Ctrl+x Ctrl+l | Complete line | :set dictionary=dict | Define dict as a dictionnary | Ctrl+x Ctrl+k | Complete with dictionnary |
Marks
mk | Marks current position as k | ˜k | Moves cursor to mark k | d™k | Delete all until mark k |
Abbreviations
:ab mail mail@provider.org | Define mail as abbreviation of mail@provider.org |
Text indent
:set autoindent | Turn on auto-indent | :set smartindent | Turn on intelligent auto-indent | :set shiftwidth=4 | Defines 4 spaces as indent size | ctrl-t, ctrl-d | Indent/un-indent in insert mode | >> | Indent | << | Un-indent |
Syntax highlighting
:syntax on | Turn on syntax highlighting | :syntax off | Turn off syntax highlighting | :set syntax=perl | Force syntax highlighting |
|
转载于:https://my.oschina.net/zhangliMyOne/blog/98141