每个程序员必须知道的100条指令
来源:互联网 发布:佛山编程培训学校 编辑:程序博客网 时间:2024/04/27 16:20
转载自:http://www.catswhocode.com/blog/100-vim-commands-every-programmer-should-know
Since the 70′s, Vi is one of the programmer’s best friend. Nevermind you’re new to Vi or not, here’s a big list of 100 useful commands, organized by topic, which will make your coder life better.
Basics
:e filenameOpen filename for edition:wSave file:qExit Vim:w!Write file and quitSearch
/wordSearch word from top to bottom?wordSearch word from bottom to top/jo[ha]nSearch john or joan/\< theSearch 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\|joeSearch fred or joe/\<\d\d\d\d\>Search exactly 4 digits/^\n\{3}Find 3 empty lines:bufdo /searchstr/Search in all open filesReplace
:%s/old/new/gReplace all occurences of old by new in file:%s/old/new/gwReplace all occurences with confirmation:2,35s/old/new/gReplace all occurences between lines 2 and 35:5,$s/old/new/gReplace all occurences from line 5 to EOF:%s/^/hello/gReplace the begining of each line by hello:%s/$/Harry/gReplace the end of each line by Harry:%s/onward/forward/giReplace onward by forward, case unsensitive:%s/ *$//gDelete all white spaces:g/string/dDelete all lines containing string:v/string/dDelete 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/gReplace Bill by Steve in current line:%s/Bill/Steve/gReplace Bill by Steve in all the file:%s/\r//gDelete DOS carriage returns (^M):%s/\r/\r/gTransform DOS carriage returns in returns:%s#<[^>]\+>##gDelete HTML tags but keeps text:%s/^\(.*\)\n\1$/\1/Delete lines which appears twiceCtrl+aIncrement number under the cursorCtrl+xDecrement number under cursorggVGg?Change text to Rot13Case
VuLowercase lineVUUppercase lineg~~Invert casevEUSwitch word to uppercasevE~Modify word caseggguGSet all text to lowercase:set ignorecaseIgnore case in searches:set smartcaseIgnore case in searches excepted if an uppercase letter is used:%s/\<./\u&/gSets first letter of each word to uppercase:%s/\<./\l&/gSets 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 lowercaseRead/Write files
:1,10 w outfileSaves lines 1 to 10 in outfile:1,10 w >> outfileAppends lines 1 to 10 to outfile:r infileInsert the content of infile:23r infileInsert the content of infile under line 23File explorer
:e .Open integrated file explorer:SexSplit window and open integrated file explorer:browse eGraphical file explorer:lsList buffers:cd ..Move to parent directory:argsList files:args *.phpOpen file list:grep expression *.phpReturns a list of .php files contening expressiongfOpen file name under cursorInteract with Unix
:!pwdExecute the pwd unix command, then returns to Vi!!pwdExecute the pwd unix command and insert output in file:shTemporary returns to Unix$exitRetourns to ViAlignment
:%!fmtAlign all lines!}fmtAlign all lines at the current position5!!fmtAlign the next 5 linesTabs
:tabnewCreates a new tabgtShow next tab:tabfirstShow first tab:tablastShow last tab:tabm n(position)Rearrange tabs:tabdo %s/foo/bar/gExecute a command in all tabs:tab ballPuts all open files in tabsWindow spliting
:e filenameEdit filename in current window:split filenameSplit the window and open filenamectrl-w up arrowPuts cursor in top windowctrl-w ctrl-wPuts cursor in next windowctrl-w_Maximise current windowctrl-w=Gives the same size to all windows10 ctrl-w+Add 10 lines to current window:vsplit fileSplit window vertically:sview fileSame as :split in readonly mode:hideClose current window:nlyClose all windows, excepted current:b 2Open #2 in this windowAuto-completion
Ctrl+n Ctrl+p (in insert mode)Complete wordCtrl+x Ctrl+lComplete line:set dictionary=dictDefine dict as a dictionnaryCtrl+x Ctrl+kComplete with dictionnaryMarks
mkMarks current position as k˜kMoves cursor to mark kd™kDelete all until mark kAbbreviations
:ab mail mail@provider.orgDefine mail as abbreviation of mail@provider.orgText indent
:set autoindentTurn on auto-indent:set smartindentTurn on intelligent auto-indent:set shiftwidth=4Defines 4 spaces as indent sizectrl-t, ctrl-dIndent/un-indent in insert mode>>Indent<<Un-indentSyntax highlighting
:syntax onTurn on syntax highlighting:syntax offTurn off syntax highlighting:set syntax=perlForce syntax highlighting- 每个程序员必须知道的100条指令
- CakePHP程序员必须知道的21条技巧
- 必须知道的Linux指令
- 每个java高手必须知道的基础知识
- 每个程序员都绝对必须知道的关于字符集和Unicode的那点儿事
- 每个Java程序员必须知道的5个JVM命令行标志
- 每个Java程序员必须知道的5个JVM命令行标志
- 每个Java程序员必须知道的5个JVM命令行标志
- 程序员必须知道的命令行
- 程序员必须知道的英语!!
- Java程序员必须知道的
- 程序员必须知道的英语!
- 程序员必须知道的英语
- windows7必须知道的77条技巧
- C语言编程总结--程序员必须知道的77条编程细节
- 每个程序员都绝对必须知道的关于字符集和Unicode的那点儿事(别找借口!)【ZT】
- 每个程序员都绝对必须知道的关于字符集和Unicode的那点儿事(别找借口!)
- 每个程序员都应该知道的福利
- Fatal error: Call-time pass-by-reference has been removed in
- 有空看看 IOS7开发~JavaScriptCore
- (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
- ORACLE常用函数实例
- c# 窗体位置设置
- 每个程序员必须知道的100条指令
- 判断文件夹是否存在,及创建一个文件夹
- MapReduce
- VC中Release版本调试及单步跟踪方法
- iOS view和viewController的生命周期
- Tuxedo多机方式配置要点(配制模板和需要注意的地方)
- 记录操作数据
- offic2007插入页码和目录
- stroryboards are not unavailable on ios4.3