vim+cscope时自动更新cscope的数据库文件
来源:互联网 发布:五金店做账用什么软件 编辑:程序博客网 时间:2024/05/21 14:42
首先需要实现vim需要干事的函数(在_vimrc文件中添加下面两个函数):
1:断开scope数据库连接
function! disable_cscope()cs kill -1endfunction
2:重新连接scope数据库(我的数据库在E:\Linux_kernel\linux-2.6.11.1\目录中)
function! connect_cscope()cs add E:\Linux_kernel\linux-2.6.11.1\cscope_bak.outendfunction
3:后台更新数据库的bat文件
@echo off%2 //进入运行文件时传入的第二个参数指示的盘cd %1 //进入第一个参数指定的具体目录:loopdel cscope.out cscope.files //删除老的数据库文件echo "cscope db create"dir /s /b *.c *.h > cscope.files //生成文件列表cscope -Rbqk //生成数据库文件cmd /c vim --servername gvim --remote-expr "disable_cscope()" //发指令让vim断开cscope连接copy %1\cscope.out %1\cscope_bak.out //拷贝cscope.out为cscope_bak.outcmd /c vim --servername gvim --remote-expr "connect_cscope()" //发指令让vim重新连接数据库echo sleep 180sping -n 180 localhost >nul //通过ping本机实现延时,时间自定goto loop@echo on
代码解释:
1、 其中一个值得解释的地方是重新连接的是cscope.out的副本,而不是原件,这样做的目的在于,不让vim断开连接太久。首先我们是删除了数据库文件 才开始再生成的,如果连接的是原件,则在删除之前就需要断开连接,且生成文件列表和数据库上非常耗时的,这样就会导致vim中长时间没有cscope的数 据库连接而让人忍受不了。使用了副本就只需要等到数据库生成后,断开连接,进行一次拷贝,再重新连接一次副本。这个断开的时间非常短,人是感觉不到的。
2、另一个值得解释的地方在于运行文件的时候需要传入参数,如:我的bat文件名叫auto_load_cscope.bat,而我的工程目录在E:\Linux_kernel\linux-2.6.11.1\中,我运行文件的方法是在cmd中进入auto_load_cscope.bat所在的目录后输入auto_load_cscope.bat
二、接下来就到linux了,在linux中会简单得多,因为它可以操作打开的文件,它可以不需要断开连接就能复制数据库文件。
#!/bin/bashcd $1while :; dorm -f cscope.outcscope -Rbqkcp cscope.out cscope_bak.outsleep 180sdone
解释:
1、在linux中打开vim后需要手动连接数据库的副本,以后就高枕无忧了。
2、同样使用参数运行.sh文件:进入.sh文件的目录后输入命令./auto_load_cscope.sh /home/jiang/work/Linux_kernel/linux-2.6.11.1/ &即可。
3、在linux中没有打开的文件不能操作的限制后,进行多工程编辑将比windows下容易得多,直接用不同的参数运行多次.sh文件,并打开不同的工程即可。
到此,我的实现就完成了,从此妈妈再也不用担心我的vim顺手了!
- vim+cscope时自动更新cscope的数据库文件
- vim+cscope的使用
- vim+cscope的使用
- vim+cscope的使用
- vim+cscope的使用
- vim+cscope 的使用
- vim+cscope的使用
- vim的cscope使用
- cscope + vim
- vim+cscope
- vim+cscope
- vim + cscope
- cscope+vim
- Vim+Cscope
- cscope+vim
- vim + cscope
- vim + cscope
- vim cscope
- 黑马程序员---iOS基础---C语言中的预处理命令
- Mac OSX 上 Android Studio 编译使用 JAVA8 及 retrolambda 的项目出错解决方案
- hdu5335Walk Out
- 同步和异步的区别
- c++中的vector容器
- vim+cscope时自动更新cscope的数据库文件
- 【操作系统】前趋图,程序的顺序执行和并发执行
- javascript实现ajax
- 来谈谈网络安全,关于Session冒名顶替和cookie防篡改的问题
- 嵌入式软件开发——CVTE 面试+笔试题
- 高效率的安排见面会问题
- Linux或者Windows系统中鼠标点击偶尔无反应?
- 我的C语言入门到精通之路 day03
- Word Search