VIM插件使用
1. buffer窗口管理工具:MiniBufExplorer
在buffer窗口,可以使用:
1. <tab>向前切换
2. S 切换到第一个tab
3. d 删除当前buffer
在命令行,可以使用:
1. bn 打开当前buffer下一个buffer
2. bp 打开当前buffer前一个buffer
3. bnum(如b1,b2) 根据buffer窗口上的数字,打开指定buffer
2. 快捷注释:NERD_commenter
常见问题:在.vimrc中添加快捷键映射,比如 let mapleader = “,”(表示用,作为标记)
常用命令(命令模式):
1. ,cc 注释当前行
2. n,cc 注释当前光标以下n行(当行注释模式)
3. n,cm 注释当前光标以下m行(块模式)
4. n,cu 取消注释
常见命令(visual模式):
1. ,cs 块注释选中行
2. ,cu 取消注释
3. ,c<SPACE> 取消注释(存在疑问?)
4. ,ci 未注释则注释,注释的则取消注释
5. ,cy 注释,同时复制
3. 目录树管理工具:NERDTree
常见问题:
1. 设置快捷键弹出目录: map <F9> :NERDTreeToggle<CR>
再次按快捷键,关闭目录
2. 配置目录问题: let NERDTreeWinPos = "left” (left或者right)
常用命令
1. ctrl+w+h 光标focus树状目录
2. ctrl+w+l 光标focus右侧文件
3. 在目录上,? 开启帮助,再次 ? 关闭帮助
4. q 关闭目录, 直接输入NERDTree开启目录
5. 全局命令:
+ :NERDTree
打开一个Nerdtree,根结点由参数指定,不指定参数就是以当前目录为根结点
+ :NERDTreeFromBookmark
打开一个Nerdtree,根结点由参数所指定的书签
6. 书签命令:
+ :Bookmark
将选中结点添加到书签列表中,并命名为name(书签名不可包含空格);
如与现有书签重名,则覆盖现有书签+ :BookmarkToRoot
以指定目录书签或文件书签的父目录作为根结点显示NerdTree
+ :RevealBookmark
如果指定书签已经存在于当前目录树下,打开它的上层结点并选中该书签
+ :OpenBookmark
打开指定的文件。(参数必须是文件书签)
如果该文件在当前的目录树下,则打开它的上层结点并选中该书签
+ :ClearBookmarks []
清除指定书签;如未指定参数,则清除所有书签
+ :ClearAllBookmarks
清除所有书签
+ :ReadBookmarks
重新读入'NERDTreeBookmarksFile'中的所有书签
7. NerdTree窗口命令:
o 在已有窗口中打开文件、目录或书签,并跳到该窗口 go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口 t 在新Tab中打开选中文件/书签,并跳到新Tab T 在新Tab中打开选中文件/书签,但不跳到新Tab O 递归打开选中 结点下的所有目录 X 递归 合拢选中结点下的所有目录 x 合拢选中结点的父目录 P 跳到根结点 p 跳到父结点 C 将选中目录或选中文件的父目录设为根结点 r 递归刷新选中目录 R 递归刷新根结点 I 切换是否显示隐藏文件 q 关闭NerdTree窗口 B 切换是否显示书签
参考资料:
1. 帮助http://www.cnblogs.com/mo-beifeng/archive/2011/09/08/2171018.html
4. 自动补全工具:word_complete.vim
常用:
let g:WC_min_len=3
当输入到第3个字母时才自动补全
:autocmd BufEnter * call DoWordComplete()
自动加载补全模式
5. ctags 和 taglist
参考:http://www.blogjava.net/zellux/archive/2007/06/12/123556.html
先看ctags
1. configure和make install(configure通过--prefix指定安装路径)
2. 到需要生成tag的目录中执行ctags –R 创建tags,生成tags文件(其中R表示递归创建)
taglist,依赖ctags
为更好的支持不同语言,先创建~/.ctags文件,然后根据语言配置:
对php的支持:
.ctags文件中需要添加:
--regex-php=/^[ \t]*[(private| public|static)( \t)]*function[ \t]+([A-Za-z0-9_]+)[ \t]*\(/\1/f, function, functions/
--regex-php=/^[ \t]*[(private| public|static)]+[ \t]+\$([A-Za-z0-9_]+)[ \t]*/\1/p, property, properties/
--regex-php=/^[ \t]*(const)[ \t]+([A-Za-z0-9_]+)[ \t]*/\2/d, const, constants/
对javascript的支持:
参考:http://www.huangwei.me/blog/2010/11/30/improve-vim-javascript-edit/
1. .ctags文件中需要添加:
--langmap=Javascript:.js.jsm --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*new[[:blank:]]+Object\(/\2/o,object/ --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*\{/\2/o,object/ --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])(^[^\?][[:blank:]]*)([A-Za-z0-9_]+)[[:blank:]]*[:][[:blank:]]*[A-Za-z0-9._$'"()]+/\3/m,member/ --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*new[[:blank:]]+Array\(/\2/a,array/ --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*\[/\2/a,array/ --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([^! ]+[^= ]+)[[:blank:]]*=[[:blank:]]*[^""]'[^'']*/\2/s,string/ --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$()]+)[[:blank:]]*[:=][[:blank:]]*function[[:blank:]]*\(/\2/f,function/ --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])function[[:blank:]]+([A-Za-z0-9._$]+)[[:blank:]]*([^)])/\2/f,function/2. 在~/.vimrc中添加:let g:tlist_javascript_settings = 'javascript;s:string;a:array;o:object;f:function;m:member'
6. jsctags 和 taglist-plus(更好的支持javascript)
参考:http://jezng.com/2011/03/vim-support-javascript-taglist-plus/