添加语法高亮和自动缩进
以Scala语言为例。
在scala 2.9.1安装包的misc\scala-tool-support\vim下有4个文件夹: ftdetect, indent, plugin和syntax,将这4个文件夹合并到$vim/vimfiles (例如C:\Program Files\Vim\vimfiles)对应的文件夹中, 这样打开扩展名为scala的文件时就会自动增加语法高亮和缩进了。
如果没有语法高亮和自动缩进效果,在$vim/_vimrc中增加:
filetype on " Switch on filetype detection and loads
filetype indent on " indent file (indent.vim) for specific file types
syntax on " Turn on syntax highligthing
set autoindent " Copy indent from the row above
set si " Smart indent
set showmatch "Show matching bracets when text indicator is over them
文件名匹配的原理见::h new-filetype
手工启动语法高亮的方法:
copy scala.vim to $vim/vim72/syntax;
open test.scala with vim
:set syntax=scala
详见:h mysyntaxfile
添加代码导航(code insight)
下载 Exuberant Ctags 5.8,解压;
下载 Tag List vim plugin 4.5,解压到$vim/vimfiles下;
到这里就可以显示ctags支持的语言(如C, JAVA, PYTHON等)了, 但Scala不在支持之列,需要手工添加ctags和taglist对scala的支持:
新建$HOME/.ctags文件(对于Windows是命令行程序cmd.exe的启动位置, win7下是c:\Users[user_name].ctags,例如c:\Users\chad.ctags),内容如下:
--langdef=scala
--langmap=scala:.scala
--regex-scala=/^[ \t]*class[ \t]+([a-zA-Z0-9_]+)/\1/c,classes/
--regex-scala=/^[ \t]*trait[ \t]+([a-zA-Z0-9_]+)/\1/t,traits/
--regex-scala=/^[ \t]*type[ \t]+([a-zA-Z0-9_]+)/\1/T,types/
--regex-scala=/^[ \t]*def[ \t]+([a-zA-Z0-9_\?]+)/\1/m,methods/
--regex-scala=/^[ \t]*val[ \t]+([a-zA-Z0-9_]+)/\1/C,constants/
--regex-scala=/^[ \t]*var[ \t]+([a-zA-Z0-9_]+)/\1/l,local variables/
--regex-scala=/^[ \t]*package[ \t]+([a-zA-Z0-9_.]+)/\1/p,packages/
--regex-scala=/^[ \t]*case class[ \t]+([a-zA-Z0-9_]+)/\1/c,case classes/
--regex-scala=/^[ \t]*final case class[ \t]+([a-zA-Z0-9_]+)/\1/c,case classes/
--regex-scala=/^[ \t]*object[ \t]+([a-zA-Z0-9_]+)/\1/o,objects/
--regex-scala=/^[ \t]*private def[ \t]+([a-zA-Z0-9_]+)/\1/pd,defs/
这样每次ctags被调用时就会读取这个文件, 语法格式详见“ Creating a user-defined language ”。
在$vim/_vimrc里增加:
let Tlist_Ctags_Cmd="f:/Software/ctags58/ctags.exe"
let tlist_scala_settings='scala;c:Classes;t:Traits;o:Objects;m:Methods;p:Packages;C:Constants;l:Local variables;T:Types'
可以看到tlist_scala_settings的定义与.ctags里的定义是有对应关系的,
以上参考了taglist文档第9节:“ Extending ”;还可以增加一个开/关taglist窗口的快捷键:
nnoremap <silent> <F4> :TlistToggle<CR>
taglist常用操作: 在taglist窗口按F1;添加自动补全 下载插件 AutoComplPop 和 L9 ,解压到\(vim/vim72目录下(plugin, doc, autoload都要解压, 且不能解压到\)vim/vimfiles下),重启VIM即可。
验证环境: Win7, vim v7.2, AutoComplPop v2.14.1, L9 v1.1。