vim的知识浩如烟海,根本不可能全部记住,只记一些对自己有用的东西就好。

Don't try to learn everything just learn the things that you need.

  1. vim自带的vimtutor程序是非常不错的入门教程。ubuntu下如果发现有乱码,需要sudo用gedit修改vim目录下的tutor.zh.euc文件(如果是7.1版本,完成路径是/usr/share/vim/vim71/tutor/tutor.zh.euc),另存为utf-8编码即可。
  2. 使用%来检查括号的匹配,括号包括() ,[] ,{}。
  3. mark功能对编辑大段代码时特别有用,可以在不同的代码位置来回切换。查看相关文档输入:help mark
  4. 通过:set dictionary=file来设置字典。字典就是一个普通文件,一行一个关键词,可以存储在任意位置。可以用来自动补全你最常用的词。使用时,在插入模式下,Ctrl+X,然后Ctrl+K调出。
  5. 使用=进行代码格式化。用v选中一段代码,按=即可将选中代码格式化。==可以格式化当前行。
  6. 普通模式下,可以使用Ctrl-A 和 Ctrl-X 对数字进行加减。
  7. v是可以选定任意个字符的,V是行选定的,Ctrl+V是列块选定。Ctrl+V在处理列表数据的时候非常有用。也可以用于注释代码,具体做法是Ctrl+V选择行首,然后I(大写的i),然后插入你所需要的字符比如#,最后按两次Esc退出。
  8. 如果你喜欢使用tab来编辑文件,推荐一个我写的标签栏配色。

    hi TabLine     cterm=none ctermfg=lightgrey ctermbg=lightblue guifg=gray guibg=black
    hi TabLineSel  cterm=none ctermfg=lightgrey ctermbg=LightMagenta guifg=white guibg=black
    hi TabLineFill cterm=none ctermfg=lightblue ctermbg=lightblue guifg=black guibg=black</pre>
  9. 使用内置的模板功能。在.vimrc文件中加入

    autocmd BufNewFile  *.html 0r ~/.vim/template/html.tpl
    autocmd BufNewFile  *.js   0r ~/.vim/template/javascript.tpl
    autocmd BufNewFile  *.php  0r ~/.vim/template/php.tpl
  10. :sh 将启动一个子shell,使用^d(ctrl+d)或者exit命令返回vim。一个应用场景就是在你编辑文件的时候,突然有一个临时任务需要处理,这时启动子shell,退回时vim所有的状态和修改记录都还在。

  11. 代码折叠,输入help fold查看帮助。代码折叠在编辑大文件的时候非常有帮助,常用命令有zc,zo,zO,zf等。
  12. 插入模式使用ctrl+y,逐字重复上一行,使用ctrl+e,逐字重复下一行。写重复代码的时候比较有用,比如说 el.setAttribute('a', somevalue1);el.setAttribute('b', somevalue2); 这个有时候这个比yy一行再修改更有效。
  13. 学会用make和quickfix,输入命令help make和help quickfix查看帮助。如果你编写c/c++,那么这个肯定需要掌握,如果你写javascript,可以看我之前写的教程中的最后部分使用javascriptlint语法检查和快速调试
  14. 使用grep根据关键词来查找和修改文件,输入help grep来查看帮助。grep之前使用cd命令来切换当前路径,grep完毕以后可以使用cw命令查看匹配结果。
  15. 使用vimdiff来比较和修改两个文件,比如说比对两个配置文件。
  16. 使用寄存器。寄存器可以作为多个剪贴板使用。输入命令reg,查看寄存器内容列表,如果想粘贴编号为5的内容,依次按"5p三个键即可。更多见help reg。
  17. 编辑并执行历史命令。输入q然后按:,即可进入历史命令编辑。输入his(history)可以直接查看历史命令,但是不能编辑。