vim有三种模式:输入模式,命令模式,底行模式,使用esc进入命令模式,在命令模式下按英文的冒号,进入底行模式;命令行模式下按i进入输入模式。vim编辑文件是将文件内容复制到缓冲区显示在屏幕上。javascript
vim的启动php
退出vim(底行模式(last line mode))css
vimrc配置设置html
正则表达式java
$ 匹配行尾 ^ 匹配行首 \< 匹配单词词首 \> 匹配单词词尾 \| 或操做符 \& 与操做符 . 匹配任意一个字符 * 匹配0-任意个 \+ 匹配1-任意个 \? 匹配0-1个 \{n,m} 匹配n-m个 \{-n,m} 与\{n,m}同样,尽量少次数地重复 \{n} 匹配n个 \{n,} 匹配n-任意个 \{,m} 匹配0-m个 \_. 匹配包含换行在内的全部字符 \{-} 表示前一个字符可出现零次或屡次,但在整个正则表达式能够匹配成功的前提下,匹配的字符数越少越好 \= 匹配一个无关紧要的项 \_s 匹配空格或断行 \_[] \* 匹配 * 字符 \. 匹配 . 字符 \/ 匹配 / 字符 \\ 匹配 \ 字符 \[ 匹配 [ 字符 [abc] 匹配方括号中的任意一个字符。可使用-表示字符范围,如[a-z0-9]匹配小写字母和阿拉伯数字 [^abc] 在方括号内开头使用^符号,表示匹配除方括号中字符以外的任意字符 \d 匹配阿拉伯数字,等同于[0-9] \D 匹配阿拉伯数字以外的任意字符,等同于[^0-9] \x 匹配十六进制数字,等同于[0-9A-Fa-f] \X 匹配十六进制数字,等同于[^0-9A-Fa-f] \w 匹配单词字母,等同于[0-9A-Za-z_] \W 匹配单词字母以外的任意字符,等同于[^0-9A-Za-z_] *\t 匹配 <TAB> 字符 \s 匹配空白字符,等同于[ \t] \S 匹配非空白字符,等同于[^ \t] \a 全部的字母字符. 等同于[a-zA-Z] \l 小写字母 [a-z] \L 非小写字母 [^a-z] \u 大写字母 [A-Z] \U 非大写字母 [^A-Z] 替换变量:在正规表达式中使用 \( 和 \) 符号括起正规表达式,便可在后面使用\1、\2等变量来访问 \( 和 \) 中的内容。 函数式 :s/替换字符串/\=函数式 在函数式中可使用 submatch(1)、submatch(2) 等来引用 \1、\2 等的内容,而submatch(0)能够引用匹配的整个内容。 实例: :%s/\s\+$// 去掉全部的行尾空格 :%s/\(\s*\n\)\+/\r/ 去掉全部的空白行 :%s#\s*//.*## 去掉全部的“//”注释,即去掉全部的// :%s#\s*/\*\_.\{-}\*/\s*##g 去掉全部的“/* */”注释 :g/^\s*$/d 删除只有空白的行 :s/\(\w\+\)\s\+\(\w\+\)/\2\t\1 将 data1 data2 修改成 data2 data1 :%s/\(\w\+\), \(\w\+\)/\2 \1/ 将 Doe, John 修改成 John Doe :%s/\<id\>/\=line(".") 将各行的 id 字符串替换为行号 :%s/\(^\<\w\+\>\)/\=(line(".")-10) .".". submatch(1) 将每行开头的单词替换为(行号-10).单词的格式,如第11行的word替换成1. word :/OB/+1,$!sort 排序 :n,m sort 排序 n,m 行 :%s/<[^>;]*>;//g 去掉html的的标记 转义字符 彷佛 vim 中的转义符与其它的工具备些差别 \r 匹配 <CR> 键 \n 匹配行末
编辑模式python
编辑模式
ctrl p 自动补全,向上搜索匹配词,在 vim 打开的全部文档中查找,不断输入命令会循环查找
ctrl x f 补全文件名
ctrl x l 自动补齐正行文本,仅在本窗口出现的文档中匹配
命令模式linux
h 向左移动一个字符 l 向右移动一个字符 j 向下移动一行 k 向上移动一行 w 将光标移到下一个单词的开头 W 移到下一个字的开头,忽略标点符号 b 光标回到上个 word 的第一个字母 fa 移到下一个 a 字符处 nfa Fa t, 移到逗号前的字符 Ta B 移到前一个字的开头,忽略标点符号 BACK e 将光标移到下一个单词的结尾 E 移到下一个字的结尾,忽略标点符号 END J 合并光标所在行及下一行为一行(依然在命令模式) gg 光标回到文件首部 ngg 跳到第n行 GG 光标到文件最后一行首部 gf 打开当前光标所在word的文件,没有这个文件则建立他。注意要先保存所做的更改 0 到本行头 $ 到文行末 n+ 光标下移n行 n- 光标上移n行 H 光标移动到屏幕顶行 M 光标移动到屏幕中间 L 光标移动到屏幕最后一行 zt 把当前行置于屏幕顶端 z. 把当前行至于屏幕中间 zb 把当前行至于屏幕底端 '' 移动光标到上一个标记处 '. 移动光标到上一次的修改行 `. 移动光标到上一次的修改点 50% 光标置于文件中间 ctrl J 跳转到当前光标所在单词对应的主题 ctrl O 回到前一个光标的位置 [[ 光标移到文件开始位置 ]] 光标移到文件结尾 ( 光标移动到句首,以一个空白行分隔判断段落 ) 光标移动到句尾 { 光标移动到段落开头,以一个空白行判断段落 } 光标移动到段落结尾 gd 跳转到局部变量的定义处; gD 跳转到全局变量的定义处,从当前文件开头开始搜索; g; 上一个修改过的地方; g, 下一个修改过的地方; [[ 跳转到上一个函数块开始,须要有单独一行的{。 ]] 跳转到下一个函数块开始,须要有单独一行的{。 [] 跳转到上一个函数块结束,须要有单独一行的}。 ][ 跳转到下一个函数块结束,须要有单独一行的}。 [{ 跳转到当前块开始处; ]} 跳转到当前块结束处; [/ 跳转到当前注释块开始处; ]/ 跳转到当前注释块结束处; % 不只能移动到匹配的(),{}或[]上,并且能在#if,#else, #endif之间跳跃。 % 括号匹配,移动到匹配的括号上,光标必须在括号上,匹配括号移动,包括 “ (, {, [ ” * 搜索匹配光标当前所在的单词,移动光标到下一个单词 # 搜索匹配光标当前所在的单词,移动光标到上一个单词 nfx 在当前行查找光标后第n个x(通常直接fx) 模式转换 a 在当前光标位置的右边添加文本 A 在当前行的末尾位置添加文本 i 在当前光标位置的左边添加文本 I 在当前行的开始处添加文本(非空字符的行首) o 在当前行的下面新建一行 O 在当前行的上面新建一行 R 替换(覆盖)当前光标位置及后面的若干文本,至关于插入 s 删除当前的字符后进入输入模式 cw 删除当前word并进入输入模式 ncw 删除当前word开始的n个word后进入输入模式 cc 删除当前行后进入输入模式 ncc 删除当前行开始的n行后进入输入模式 复制 删除(剪切) 粘贴 恢复 u 撤销 ctrl r 恢复,只对u有效 U 撤销对光标所在那一行所作的修改 x 删除光标所在的字符 nx 删除从光标开始的n个字符 X 删除光标以前(其左边)的一个字符 r 修改光标所在的字符,按一下,再按想输入的字符 J 合并两行 d 删除可视区域的内容 dd 删除当前行 dfa 删除当前字符直到第一个a字符 dt" 删除全部的内容,直到遇到双引号 ndd 向下删除当前行在内的n行 dw 删除一个词和它后面的空格,将光标放置到该词的开头 ndw 删除光标及光标后的n个word d^ 删除行中光标前面的字符 d$ 删除行中光标及其右边的字符 d0 同d^ D 同d$ dG 删除包含当前行到文件尾的内容 ggdG 删除整个文件 nyl 复制当前n个字符 y2fa 复制当前字符直到第二个a字符 y0 复制当前光标到行首的内容 y$ 复制当前光标到行末的内容 yG 复制当前行到最后一行 yy 当前行复制到缓存区,也能够用 ayy 复制, a 为缓冲区,a也能够替换为a到z的任意字母,能够完成多个复制任务 yw 复制当前光标处的单词 nyy 将当前行向下n行复制到缓冲区,也能够用 anyy 复制, a 缓冲区,a也能够替换为a到z的任意字母,能够完成多个复制任务 yw 复制从光标开始到词尾的字符 nyw 复制从光标开始的n个单词 y^ 复制从光标到行首的内容 y$ 复制从光标到行尾的内容 guw 光标下的单词变为小写 gUw 光标下的单词变为大写 ~ 大小写转换 xp 左右交换光标处两字符的位置 p 粘贴到当前光标后面 P 粘贴到当前光标前面 ga 显示光标下的字符在当前使用的encoding下的内码 宏 . 重复上一个编辑动做 qx 记录底行模式下输入的命令,并列表呈现出来 q 中止录制 @x 播放宏a @@ 播放最近的宏 zf 建立折叠的命令(需加方向键),能够在一个可视区域上使用该命令 zd 删除当前行的折叠 zD 删除当前行的折叠 zfap 折叠光标所在的段 zo 打开折叠的文本,空格也能够 zc 收起折叠 za 打开/关闭当前折叠 zr 打开嵌套的折行 zm 收起嵌套的折行 zR(zO) 打开全部折行 zM(zC) 收起全部折行 zj 跳到下一个折叠处 zk 跳到上一个折叠处 zi enable/disable fold = 使用v选定代码后,按'='会自动缩进代码 > 输入此命令则光标所在行向右移动一个tab > 使用v选定代码后,按'>'会将代码总体右移 5>> 输入此命令将光标在内的5行向右移动一个tab v 可视模式,单个字符 V 可视模式,行,能够选择连续的多个行 ctrl v 可视模式,列 ctrl l 刷新屏幕 自动补全 ctrl p 向上搜索匹配词 ctrl n 向下 移动 ctrl e 光标向下卷一行 ctrl y 光标向上卷一行 翻页 ctrl u 光标向下卷半页 ctrl d 光标向上卷半页 ctrl f 光标向下卷一页 ctrl b 光标向上卷一页 ctrl q 挂起时使用 ctrl z 暂时挂到后台 ctrl ] 跳到函数定义的地方 ctrl g 显示文件名,当前光标所在行的行号,总的行数,以及当前行所在文件中的百分比和当前光标所在的列的信息,同':f' ctrl w 窗口切换,连按两下,按方向键 ctrl w s 上下分割当前打开的文件 ctrl w v 左右分割当前打开的文件 ctrl w c 关闭当前窗口 ctrl w q 关闭当前窗口,若是只剩最后一个了,则退出Vim ctrl w h 把光标移到左边的屏 ctrl w H 屏幕向左移动 ctrl w j 把光标移到下边的屏 ctrl w J 屏幕向下移动 ctrl w k 把光标移到上边的屏 ctrl w K 屏幕向上移动 ctrl w l 把光标移到右边的屏 ctrl w L 屏幕向右移动 ctrl w = 让全部的屏都有同样的高度 ctrl W + 要扩大窗口 ctrl W - 要缩小窗口
底行模式git
多文件多窗口的操做github
vim -On file1 file2 ... 使用大写的O参数来垂直分屏,n是数字,表示分红几个屏 vim -on file1 file2 ... 使用小写的o参数来垂直分屏 :sp filename 上下分割,并打开一个新的文件 :vsp filename 左右分割,并打开一个新的文件 :rew 多个文件时回到首个文件 :n 切换到下一个文件 :N 切换到上一个文件 :bn :bp 同时打开不少文件,使用这两个命令来切换下一个或上一个文件 :split filename 分割窗口,将会复制文件内容 :vsplit filename 分割窗口 :new filename :vnew filename :close 关闭当前窗口 :only 只留下当前编辑的窗口,关闭其余的编辑窗口 :qa 所有退出,同qall :wa 所有写入,同wall :wqa 同wqall :args 显示编辑名单中的各个文件名列表 :files buffers ls 列出目前 buffer 中的全部文件 ctrl w 窗口切换,连按两下,按方向键 ctrl w s 上下分割当前打开的文件 ctrl w v 左右分割当前打开的文件 ctrl w c 关闭当前窗口 ctrl w q 关闭当前窗口,若是只剩最后一个了,则退出Vim ctrl w h 把光标移到左边的屏 ctrl w H 屏幕向左移动 ctrl w j 把光标移到下边的屏 ctrl w J 屏幕向下移动 ctrl w k 把光标移到上边的屏 ctrl w K 屏幕向上移动 ctrl w l 把光标移到右边的屏 ctrl w L 屏幕向右移动 ctrl w = 让全部的屏都有同样的高度 ctrl W + 要扩大窗口 ctrl W - 要缩小窗口 窗口分割时,进行切换的按键热键须要链接两次,好比从下方窗口移动光标到上方窗口,须要<c-w><c-w>k,很是麻烦,如今重映射为<c-k>,切换的时候会变得很是方便 nnoremap <C-h> <C-w>h nnoremap <C-j> <C-w>j nnoremap <C-k> <C-w>k nnoremap <C-l> <C-w>l
文档的折叠,缩进正则表达式
:set foldenable 开始折叠 :set foldmethod=syntax 设置语法折叠 :set foldcolumn=0 设置折叠区域的宽度 :setlocal foldlevel=1 设置折叠层数为1 :set foldclose=all 设置为自动关闭折叠 zf 折叠行(需加方向键) zo 展开折叠,空格也能够 zc 关闭折叠 用空格键来开关折叠(默认) nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> 使用v选定代码后,按'='会自动缩进代码。 使用v选定代码后,按'>'会将代码总体右移。
文件格式
有三种文件格式:unix, dos, mac. 三种格式的区别主要在于回车键的编码:dos 下是回车加换行,unix 下只有 换行符,mac 下只有回车符。 :e ++ff=dos filename 让vim用dos格式打开这个文件 :w ++ff=mac filename 以mac格式存储这个文件 :set fileformats=unix,dos,mac 添加在配置文件中让vim自动识别文件格式 :set ff
标记
使用标记能够快速移动。到达标记后,能够用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退 和 前进 。 m{a-z} 标记光标所在位置,局部标记,只用于当前文件。 m{A-Z} 标记光标所在位置,全局标记。标记以后,退出Vim, 从新启动,标记仍然有效。 `{a-z} 移动到标记位置。 '{a-z} 移动到标记行的行首。 `{0-9} 回到上[2-10]次关闭vim时最后离开的位置。 `` 移动到上次编辑的位置。''也能够,不过``精确到列,而''精确到行 。若是想跳转到更老的位置,能够按C-o,跳转到更新的位置用C-i。 `" 移动到上次离开的地方。 `. 移动到最后改动的地方。 :marks 显示全部标记。 :delmarks a b 删除标记a和b。 :delmarks a-c 删除标记a、b和c。 :delmarks a c-f 删除标记a、c、d、e、f。 :delmarks! 删除当前缓冲区的全部标记。 :help mark-motions 查看更多关于mark的知识
注释
方法一 块选择模式 Ctrl v 进入块选择模式,而后移动光标选中你要注释的行,再按大写的I进入行首插入模式输入注释符号如// 或 #,输入完毕以后,按两下esc键,Vim会自动将你选中的全部行首都加上注释 Ctrl v 进入块选择模式,选中你要删除的行首的注释符号,注意// 要选中两个,选好以后按d便可删除注释 方法二 替换命令 使用下面命令在指定的行首添加和撤销注释: :起始行号,结束行号s/^/注释符/g 4,9 s/^/\/\//g,能够将格式中的/替换为# :起始行号,结束行号s/^注释符//g 4,9 s/^\/\///g :vmap <F5> :s/^/\/\//<CR> 选中内容,按 F5注释 :vmap <F6> :s/^\/\///<CR> 选中内容,按F6取消注释 每当输入#号时,#号都会跑到行首。 在.vimrc中加入以下几行,便可解决这个问题。 复制代码 代码以下: if has("autocmd") filetype plugin indent on else set autoindent endif "has("autocmd")
统计字数
在visual(可视)模式下,选中须要统计的文本,按g,再按Ctr+g就会显示选择的行数,字符数。
:% s/./&/g 显示当前文本的字符数,行数,原理是用字符本身替换本身,看替换了多少次
复制粘贴
不管是vim内部抑或外部的复制([y]ank)、删除([d]elete)、粘贴([p]ut),在vim中都是借助registers(寄存器)实现的,vim共有9类寄存器: 无名(unnamed)寄存器:"" 缓存最后一次操做内容; 数字(numbered)寄存器:"0 - "9 缓存最近操做内容,复制与删除有别; 行内删除(small delete)寄存器:"- 缓存行内删除内容; 具名(named)寄存器:"a - "z或"A - "Z 指定时可用; 只读(read-only)寄存器:":, "., "%, "# 分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名; 表达式(expression)寄存器:"= 只读,用于执行表达式命令; 选择及拖拽(selection and drop)寄存器:"*, "+, "~ 存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用; 黑洞(black hole)寄存器:"_ 不缓存操做内容(干净删除); 模式寄存器(last search pattern):"/ 缓存最近的搜索模式。 粘贴剪切板内容 在命令模式下依次输入“"0p”粘贴0寄存器的内容。 对于非GUI版本的vim,系统剪切板是不可用的,须安装gvim。 设置了set mouse=a 后,按住 shift 键,能够将鼠标的处理交给 X 环境,方便复制粘贴。 :map <F7> :set nu<CR> :map <F8> :set nonu<CR> :map <F9> :set paste<CR> :map <F10> :set nopaste<CR>
map
:map 输出已定义的全部映射 map,nmap(命令模式),imap(输入模式),vmap(选中模式) 进行命令的宏定义。置能够预先写到 ~/.vimrc,写进配置文件时不用写前面的冒号。 :nmap :nohls 取消被搜索字串的高亮 :nmap w 命令模式下转移光标到不一样窗口 :imap 输入模式下运行 :nmap :%s= *$== 删除全部行尾多余的空格 :nmap :cl 此命令用于查看全部的编译错误 :nmap :cc 此命令用于查看当前的编译错误 :nmap :cn 此命令用于跳到下一个出错位置 :nmap :cp 此命令用于跳到上一个出错位置 :imap 同上java 中: (注, 这里为何说 java 中, 由于如下定义对其余文件格式不起做用, 下文会说到如何实现这一点) :nmap :JavaBrowser 此命令用于在窗口左部分割出一个新窗口, 里面的内容是 java 的资源树, 包括本文件中出现的类, 类的成员变量及成员方法, 就好像 JCreator
表现的那样。在这个窗口中输入 ? 会看到帮助。 嘿嘿, 很好用, 不过须要 ctags 支持. :nmap :comp javac:mak -d . % 此命令用 javac 编译 java 文件, 它会自动将光标定位到出错点. 不过这须要定义一个 javac.vim 文件在 $VIM/compiler 下,
在 javac.vim 里面只有两行字:setlocal makeprg=javac, setlocal errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%# :nmap :comp ant:mak 此命令用 ant 编译 java 文件, 它会自动将光标定位到出错点. 通常来讲, 安装vim 后已经有了compiler/ant.vim文件, 所以这个命令能够
直接使用。可是须要在当前目录下有 build.xml 文件, 固然还必须安装 ant 才行 Buffers操做快捷方式 nnoremap <C-RETURN> :bnext<CR> nnoremap <C-S-RETURN> :bprevious<CR> Tab操做快捷方式 nnoremap <C-TAB> :tabnext<CR> nnoremap <C-S-TAB> :tabprev<CR> 关于tab的快捷键 map tn :tabnext<cr> map tp :tabprevious<cr> map td :tabnew .<cr> map te :tabedit map tc :tabclose<cr> 一些不错的映射转换语法(若是在一个文件中混合了不一样语言时有用) nnoremap <leader>1 :set filetype=xhtml<CR> nnoremap <leader>2 :set filetype=css<CR> nnoremap <leader>3 :set filetype=javascript<CR> nnoremap <leader>4 :set filetype=php<CR> nmap <leader>fd :se fileformat=dos<CR> nmap <leader>fu :se fileformat=unix<CR> 使用Ctrl+[l|n|p|cc] 来 list|next|previous|jump to count the result map <C-x>l <ESC>:cl<CR> map <C-x>n <ESC>:cn<CR> map <C-x>p <ESC>:cp<CR> map <C-x>c <ESC>:cc<CR> 选中状态下 Ctrl c 复制 vmap <C-c> y
autocmd
:set autocmd!
Python 文件的通常设置,好比不要 tab 等 autocmd FileType python set tabstop=4 shiftwidth=4 expandtab autocmd FileType python map <F12> :!python %<CR> 设置字典 ~/.vim/dict/文件的路径 autocmd filetype javascript set dictionary=$VIMFILES/dict/javascript.dict autocmd filetype css set dictionary=$VIMFILES/dict/css.dict autocmd filetype php set dictionary=$VIMFILES/dict/php.dict
vim的插件
http://www.ibm.com/developerworks/cn/linux/l-tip-vim2/index.html gzip(压缩文件支持) netrw(网络文件支持) engspchk(英文拼写检查) calendar(日历显示)\cal project(文件的“项目”管理):Project taglist(源代码结构浏览):Tlist :let Tlist_Inc_Winwidth=0 cvsmenu(CVS集成) doxygen(文档注释语法加亮) matrix(一个好玩的脚本):Matrix syntax/2html.vim 让 Tohtml 产生有 CSS 语法的 html let html_use_css=1 ZenCoding.vim 很酷的插件,HTML代码生成 插件最新版:http://github.com/mattn/zencoding-vim 经常使用命令可看:http://nootn.com/blog/Tool/23/ checksyntax.vim JavaScript常见语法错误检查 默认快捷方式为 F5 let g:checksyntax_auto = 0 不自动检查 NeoComplCache.vim 自动补全插件 let g:AutoComplPop_NotEnableAtStartup = 1 let g:NeoComplCache_EnableAtStartup = 1 let g:NeoComplCache_SmartCase = 1 let g:NeoComplCache_TagsAutoUpdate = 1 let g:NeoComplCache_EnableInfo = 1 let g:NeoComplCache_EnableCamelCaseCompletion = 1 let g:NeoComplCache_MinSyntaxLength = 3 let g:NeoComplCache_EnableSkipCompletion = 1 let g:NeoComplCache_SkipInputTime = '0.5' let g:NeoComplCache_SnippetsDir = $VIMFILES.'/snippets' <TAB> completion. inoremap <expr><TAB> pumvisible() ? \<C-n> : \<TAB> snippets expand key imap <silent> <C-e> <Plug>(neocomplcache_snippets_expand) smap <silent> <C-e> <Plug>(neocomplcache_snippets_expand) bufexplorer.vim Buffers切换 \be 全屏方式查看所有打开的文件列表 \bv 左右方式查看 \bs 上下方式查看 taglist.vim 查看函数列表,须要ctags程序 F4 打开隐藏taglist窗口 if MySys() == windows 设定windows系统中ctags程序的位置 let Tlist_Ctags_Cmd = ' '.$VIMRUNTIME.'/ctags.exe ' elseif MySys() == linux 设定windows系统中ctags程序的位置 let Tlist_Ctags_Cmd = '/usr/bin/ctags' endif nnoremap <silent><F4> :TlistToggle<CR> let Tlist_Show_One_File = 1 不一样时显示多个文件的tag,只显示当前文件的 let Tlist_Exit_OnlyWindow = 1 若是taglist窗口是最后一个窗口,则退出vim let Tlist_Use_Right_Window = 1 在右侧窗口中显示taglist窗口 let Tlist_File_Fold_Auto_Close=1 自动折叠当前非编辑文件的方法列表 let Tlist_Auto_Open = 0 let Tlist_Auto_Update = 1 let Tlist_Hightlight_Tag_On_BufEnter = 1 let Tlist_Enable_Fold_Column = 0 let Tlist_Process_File_Always = 1 let Tlist_Display_Prototype = 0 let Tlist_Compact_Format = 1 mark.vim 给各类tags标记不一样的颜色,便于观看调式的插件。 \m mark or unmark the word under (or before) the cursor \r manually input a regular expression. 用于搜索. \n clear this mark (i.e. the mark under the cursor), or clear all highlighted marks . \* 当前MarkWord的下一个 \# 当前MarkWord的上一个 \/ 全部MarkWords的下一个 \? 全部MarkWords的上一个 NERD_tree.vim 以树状方式浏览系统中的文件和目录 :ERDtree 打开NERD_tree :NERDtreeClose 关闭NERD_tree o 打开关闭文件或者目录 t 在标签页中打开 T 在后台标签页中打开 ! 执行此文件 p 到上层目录 P 到根目录 K 到第一个节点 J 到最后一个节点 u 打开上层目录 m 显示文件系统菜单(添加、删除、移动操做) r 递归刷新当前目录 R 递归刷新当前根目录 F3 NERDTree 切换 map <F3> :NERDTreeToggle<CR> imap <F3> <ESC>:NERDTreeToggle<CR> NERD_commenter.vim 注释代码用的, [count],cc 光标如下count行逐行添加注释(7,cc) [count],cu 光标如下count行逐行取消注释(7,cu) [count],cm 光标如下count行尝试添加块注释(7,cm) ,cA 在行尾插入 /* */,而且进入插入模式。 这个命令方便写注释。 注:count参数可选,无则默认为选中行或当前行 let NERDSpaceDelims=1 让注释符与语句之间留一个空格 let NERDCompactSexyComs=1 多行注释时样子更好看 DoxygenToolkit.vim 由注释生成文档,而且可以快速生成函数标准注释 let g:DoxygenToolkit_authorName= Asins - asinsimple AT gmail DOT com let g:DoxygenToolkit_briefTag_funcName= yes map <leader>da :DoxAuthor<CR> map <leader>df :Dox<CR> map <leader>db :DoxBlock<CR> map <leader>dc a /* */<LEFT><LEFT><LEFT> matchit.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转 % 正向匹配 g% 反向匹配 [% 定位块首 ]% 定位块尾 plugin - vcscommand.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转 SVN/git管理工具 a.vim
搭建vim开发环境
http://blog.csdn.net/tao_627/article/details/9320363
项目管理
http://blog.csdn.net/ithomer/article/details/7090318 http://blog.csdn.net/paul08colin/article/details/9232409
参考
http://www.vim.org/ http://wiki.dzsc.com/info/7313.html http://www.cnblogs.com/zourrou/archive/2011/04/16/2018493.html http://blog.csdn.net/wuyeyixi/article/details/7466327 http://blog.csdn.net/tao_627/article/details/9320363 http://blog.csdn.net/ithomer/article/details/7090318 http://blog.csdn.net/paul08colin/article/details/9232409 http://blog.163.com/zhang_sheng_cun/blog/static/46288667200792604435190/ http://linux.chinaunix.net/techdoc/desktop/2009/07/06/1122020.shtml http://be-evil.org/vim-how-to-comment-multi-line-code.html http://www.ibm.com/developerworks/cn/linux/l-tip-vim2/index.html http://vimcdoc.sourceforge.net/ 下载vim的pdf彻底翻译版,里面很详细的介绍了vim http://www.vi-improved.org/vimrc.php 带有英文注释的.vimrc配置文件
unix/linux的哲学之一是使用独立的小工具完成复杂的工做。