参考了一些网上的文章以及实验,在ubuntu下暂时配除了一个还过得去的nesC开发环境
首先到http://www.vim.org/scripts/script.php?script_id=1847下载最新版本的插件
拷贝或者移动到home的.vim文件夹内,如果没有可以自己创建
mv vim.tar.gz ~/.vim
然后解压缩
tar -xvzf vim.tar.gz
然后修改home下.vimrc的配置,将
augroup filetypedetect
au! BufRead,BufNewFile *nc setfiletype nc
augroup END
加入文件中。
然后在home下新建.ctags文件,输入,作为nesC的ctags脚本
--langdef=nesc
--langmap=nesc:.nc.h
--regex-nesc=/^module[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
--regex-nesc=/^configuration[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
--regex-nesc=/^generic configuration[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
--regex-nesc=/^generic module[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
--regex-nesc=/^interface[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
--regex-nesc=/uses[ \t]+interface[ \t]+[a-zA-Z0-9_]+[a-zA-Z0-9 \t]+as[ \t]+([a-zA-Z0-9_]+)/\1/d,definition/
--regex-nesc=/.*\.([a-zA-Z0-9]+)[ \t]*->.*/\1/d,definition/
然后到home/.vim/ctags下输入
-R --languages=nesc . /opt/tinyos-2.1.1/tos
其中/opt/tinyos-2.1.1/tos可以替换为你的tinyos下tos目录路径,此时可以在vim编辑的时候ctrl+]跳转到响应的源代码查看,ctrl+t返回。默认生成名为ctags的标签文件,可以通过-f选项改名,也可以用mv命令命名为nesc
目前发现如果编写脚本第一行#include,保存在进入,#include之后的所有语法高亮失效,目前不知到为什么,但是经过试验,编写文件的时候开头多空5行,然后的语法保存后在开都是正常的。所以我还是养成习惯每个nesC源文件开头都空5行,加注释说明。
为了让ctags跳转不要条掉其他标签中,修改.vimrc文件
autocmd FileType nc set ctags+=~/.vim/ctags/nesc
autocmd FileType c,cpp,cc ctags+=~/.vim/ctags/cpp
autocmd命令就是检测到文件类型之后自动执行响应脚本,这样把nc和c,cpp的ctags标签区分开来