首页
随机
最近更改
特殊页面
社群首页
参数设置
关于WHY42
免责声明
WHY42
搜索
用户菜单
登录
欢迎来到Riguz的小站!这是一个私人wiki,用来记录一些我的笔记。
查看“︁Vim cheat sheet”︁的源代码
←
Vim cheat sheet
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
=基础= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:e filename</code>||Open filename for edition |- |<code>:w</code>||Save file |- |<code>:q</code>||Exit Vim |- |<code>:q!</code>||Quit without saving |- |<code>:x</code>||Write file (if changes has been made) and exit |- |<code>:sav filename</code>||Saves file as filename |- |<code>.</code>||Repeats the last change made in normal mode |- |<code>5</code>||Repeats 5 times the last change made in normal mode |- |} =在文件中移动= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>k or Up Arrow</code>||move the cursor up one line |- |<code>j or Down Arrow</code>||move the cursor down one line |- |<code>e</code>||move the cursor to the end of the word |- |<code>b</code>||move the cursor to the begining of the word |- |<code>0</code>||move the cursor to the begining of the line |- |<code>G</code>||move the cursor to the end of the line |- |<code>gg</code>||move the cursor to the begining of the file |- |<code>L</code>||move the cursor to the end of the file |- |<code>:59</code>||move cursor to line 59. Replace 59 by the desired line number. |- |<code>20|</code>||move cursor to column 20. |- |<code>%</code>||Move cursor to matching parenthesis |- |<code>[[</code>||Jump to function start |- |<code>[{</code>||Jump to block start |- |} =剪切、复制和粘贴= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>y</code>||Copy the selected text to clipboard |- |<code>p</code>||Paste clipboard contents |- |<code>dd</code>||Cut current line |- |<code>yy</code>||Copy current line |- |<code>y$</code>||Copy to end of line |- |<code>D</code>||Cut to end of line |- |} =搜索= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>/word</code>||Search word from top to bottom |- |<code>?word</code>||Search word from bottom to top |- |<code>*</code>||Search the word under cursor |- |<code>/\cstring</code>||Search STRING or string, case insensitive |- |<code>/jo[ha]n</code>||Search john or joan |- |<code>/\< the</code>||Search the, theatre or then |- |<code>/the\></code>||Search the or breathe |- |<code>/\< the\></code>||Search the |- |<code>/\< ¦.\></code>||Search all words of 4 letters |- |<code>/\/</code>||Search fred but not alfred or frederick |- |<code>/fred\|joe</code>||Search fred or joe |- |<code>/\<\d\d\d\d\></code>||Search exactly 4 digits |- |<code>/^\n\{3}</code>||Find 3 empty lines |- |<code>:bufdo /searchstr/</code>||Search in all open files |- |<code>bufdo %s/something/somethingelse/g</code>||Search something in all the open buffers and replace it with somethingelse |- |} =替换= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:%s/old/new/g</code>||Replace all occurences of old by new in file |- |<code>:%s/onward/forward/gi</code>||Replace onward by forward, case unsensitive |- |<code>:%s/old/new/gc</code>||Replace all occurences with confirmation |- |<code>:2,35s/old/new/g</code>||Replace all occurences between lines 2 and 35 |- |<code>:5,$s/old/new/g</code>||Replace all occurences from line 5 to EOF |- |<code>:%s/^/hello/g</code>||Replace the begining of each line by hello |- |<code>:%s/$/Harry/g</code>||Replace the end of each line by Harry |- |<code>:%s/onward/forward/gi</code>||Replace onward by forward, case unsensitive |- |<code>:%s/ *$//g</code>||Delete all white spaces |- |<code>:g/string/d</code>||Delete all lines containing string |- |<code>:v/string/d</code>||Delete all lines containing which didn’t contain string |- |<code>:s/Bill/Steve/</code>||Replace the first occurence of Bill by Steve in current line |- |<code>:s/Bill/Steve/g</code>||Replace Bill by Steve in current line |- |<code>:%s/Bill/Steve/g</code>||Replace Bill by Steve in all the file |- |<code>:%s/^M//g</code>||Delete DOS carriage returns (^M) |- |<code>:%s/\r/\r/g</code>||Transform DOS carriage returns in returns |- |<code>:%s#<[^>]\+> |-g</code>||Delete HTML tags but keeps text |- |<code>:%s/^\(.*\)\n\1$/\1/</code>||Delete lines which appears twice |- |<code>Ctrl+a</code>||Increment number under the cursor |- |<code>Ctrl+x</code>||Decrement number under cursor |- |<code>ggVGg?</code>||Change text to Rot13 |- |} =大小写= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>Vu</code>||Lowercase line |- |<code>VU</code>||Uppercase line |- |<code>g~~</code>||Invert case |- |<code>vEU</code>||Switch word to uppercase |- |<code>vE~</code>||Modify word case |- |<code>ggguG</code>||Set all text to lowercase |- |<code>gggUG</code>||Set all text to uppercase |- |<code>:set ignorecase</code>||Ignore case in searches |- |<code>:set smartcase</code>||Ignore case in searches excepted if an uppercase letter is used |- |<code>:%s/\<./\u&/g</code>||Sets first letter of each word to uppercase |- |<code>:%s/\<./\l&/g</code>||Sets first letter of each word to lowercase |- |<code>:%s/.*/\u&</code>||Sets first letter of each line to uppercase |- |<code>:%s/.*/\l&</code>||Sets first letter of each line to lowercase |- |} =读写文件= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:1,10 w outfile</code>||Saves lines 1 to 10 in outfile |- |<code>:1,10 w >> outfile</code>||Appends lines 1 to 10 to outfile |- |<code>:r infile</code>||Insert the content of infile |- |<code>:23r infile</code>||Insert the content of infile under line 23 |- |} =文件浏览器= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:e .</code>||Open integrated file explorer |- |<code>:Sex</code>||Split window and open integrated file explorer |- |<code>:Sex!</code>||Same as :Sex but split window vertically |- |<code>:browse e</code>||Graphical file explorer |- |<code>:ls</code>||List buffers |- |<code>:cd ..</code>||Move to parent directory |- |<code>:args</code>||List files |- |<code>:args *.php</code>||Open file list |- |<code>:grep expression *.php</code>||Returns a list of .php files contening expression |- |<code>gf</code>||Open file name under cursor |- |} =和 Unix 系统交互= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:!pwd</code>||Execute the pwd unix command, then returns to Vi |- |<code>!!pwd</code>||Execute the pwd unix command and insert output in file |- |<code>:sh</code>||Temporary returns to Unix |- |<code>$exit</code>||Retourns to Vi |- |} =对齐= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:%!fmt</code>||Align all lines |- |<code>!}fmt</code>||Align all lines at the current position |- |<code>5!!fmt</code>||Align the next 5 lines |- |} =Tabs/Windows= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:tabnew</code>||Creates a new tab |- |<code>gt</code>||Show next tab |- |<code>:tabfirst</code>||Show first tab |- |<code>:tablast</code>||Show last tab |- |<code>:tabm n(position)</code>||Rearrange tabs |- |<code>:tabdo %s/foo/bar/g</code>||Execute a command in all tabs |- |<code>:tab ball</code>||Puts all open files in tabs |- |<code>:new abc.txt</code>||Edit abc.txt in new window |- |} =分屏显示= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:e filename</code>||Edit filename in current window |- |<code>:split filename</code>||Split the window and open filename |- |<code>ctrl-w up arrow</code>||Puts cursor in top window |- |<code>ctrl-w ctrl-w</code>||Puts cursor in next window |- |<code>ctrl-w_</code>||Maximize current window vertically |- |<code>ctrl-w|</code>||Maximize current window horizontally |- |<code>ctrl-w=</code>||Gives the same size to all windows |- |<code>10 ctrl-w+</code>||Add 10 lines to current window |- |<code>:vsplit file</code>||Split window vertically |- |<code>:sview file</code>||Same as :split in readonly mode |- |<code>:hide</code>||Close current window |- |<code>:nly</code>||Close all windows, excepted current |- |<code>:b 2</code>||Open #2 in this window |- |} =自动完成= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>Ctrl+n Ctrl+p (in insert mode)</code>||Complete word |- |<code>Ctrl+x Ctrl+l</code>||Complete line |- |<code>:set dictionary=dict</code>||Define dict as a dictionnary |- |<code>Ctrl+x Ctrl+k</code>||Complete with dictionnary |- |} =Marks= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>m {a-z}</code>||Marks current position as {a-z} |- |<code>' {a-z}</code>||Move to position {a-z} |- |<code>''</code>||Move to previous position |- |} =缩写= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:ab mail mail@provider.org</code>||Define mail as abbreviation of mail@provider.org |- |} =文本缩进= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:set autoindent</code>||Turn on auto-indent |- |<code>:set smartindent</code>||Turn on intelligent auto-indent |- |<code>:set shiftwidth=4</code>||Defines 4 spaces as indent size |- |<code>ctrl-t, ctrl-d</code>||Indent/un-indent in insert mode |- |<code>>></code>||Indent |- |<code><<</code>||Un-indent |- |<code>=%</code>||Indent the code between parenthesis |- |<code>1GVG=</code>||Indent the whole file |- |} =语法高亮= {|class="wikitable" border="1" |- !style="width:300px"|命令||style="width:400px"|用途 |- |<code>:syntax on</code>||Turn on syntax highlighting |- |<code>:syntax off</code>||Turn off syntax highlighting |- |<code>:set syntax=perl</code>||Force syntax highlighting |- =文件移动= {| class="wikitable" border="1" |- ! style="width:200px"|命令||style="width:400px"|用途 |- | <code> </code>|| |- | <code> </code>|| |} =剪切、粘贴和复制= {| class="wikitable" border="1" |- ! style="width:200px"|命令||style="width:400px"|用途 |- | <code> </code>|| |- | <code> </code>|| |}
返回
Vim cheat sheet
。