ubuntu 中cscope的安装
Ubuntu给我们安装软件提供了很大的便利,比如说,安装vim,我们可以直接使用"sudo apt-get install vim"即可安装! 同样,cscope和ctags也可以使用相同方法安装,这是多么畅快淋漓啊!谢谢Ubuntu给我们用户如此便利! 另外可能需要cscope_maps.vim,下载地址为:http://www.kuaipan.cn/file/id_80368278446281791.htm 对于Taglist使用这个方法安装不了,我们需要先下载,然后安装完成: 首先上网下载Taglist插件,下载完成后解压,再将文件下的taglist.vim使用cp命令拷贝到HOME/.vim/plugin文件夹下(cp -r taglist.vim ~/.vim/plugin) 这样,vim+Taglist+cscope+ctags四种工具我们是创建好了,但是如何使用呢? vim是一个非常好用的编辑工具,以下介绍几个常用的底行模式命令:
(1). 设置缩进 :set smartindent // 设置缩进 :set smartindent shiftwidth=4 // C语言自动缩进,缩进值为4个字符宽度 (2). 显示光标行列信息 :set ruler // 显示光标信息(右下角) (3). 查看制表符 :set list // 显示制表符,以^符号显示制表符的位置 (4). 查看行数信息 :set number //显示行号(左边) (5). 关键字高亮 :syntax on //关键字高亮 (6). 多文件编辑 ,在编写程序时有可能需要同时编辑多个文件,在这种情况下,需要如下设置
: split two.c // 多文件编辑
当然,如果不嫌麻烦,可以在每次打开Vim时 输入如上命令,如我经常用的是:set number :set ruler :syntax on :set smartindent 命令,如果将平时在底行模式下输入的命令直接写入配置文件,则以后使用Vim时不用再次输入这些命令。 首先,试着在Vi的底行模式下输入如下命令,如果不支持的话,去下载一个Vim的全版本,sudo apt-get install vim-full。 以下是修改配置文件的方法: (1). 找到Vimrc文件。 (2) 查看文件的权限: zhouyl@ubuntu:~$ cd /etc/vim
zhouyl@ubuntu:/etc/vim$ ls
vimrc vimrc~ vimrc.tiny
zhouyl@ubuntu:/etc/vim$ ls -l vimrc
-rw-r--r-- 1 root root 3449 9月 11 17:30 vimrc (3) 如果没有写权限的话,修改权限,使我们可以修改该配置文件 sudo chmod a+w vimrc
(4)根据个人需要将上诉命令写入配置文件
比如,我个人的设置是: syntax on , set ruler ,set number , set smartindent shiftwidth=4 下面贴上我的vimrc文件的配置信息: - 显示行号
- set number
- "检测文件的类型
- filetype on
- "记录历史的行数
- set history=1000
- "自动对齐
- set autoindent
- set cindent
- "智能选择对齐方式
- set smartindent
- "tab为4个空格
- set tabstop=4
- "当前行之间交错时使用4个空格
- set shiftwidth=4
- "设置匹配模式,输入做括号会出现右括号
- set showmatch
- "编辑时显示光标状态
- set ruler
- "快速匹配
- set incsearch
- "修改文件自动备份
- if has("vms")
- set nobackup
- else
- set backup
- endif
- """""""""""""设置开启ctags"""""""""""""
- set tags=/home/zhouyl/linux-3.4.7/tags;"在这设置ctags -R 后生成的tags文件所在目录,下面有介绍,如果需要配置多个tags。只需如下再添加即可
- set tags=/home/zhouyl/rap/libpcap-1.3.0/tags;
- set autochdir
- """""""""""""""""Taglist设置"""""""""""""""""
- ""let Tlist_Auto_Open = 1
- let Tlist_Ctags_Cmd = '/usr/bin/ctags'
- let Tlist_Show_One_File = 1
- let Tlist_Exit_OnlyWindow = 1
- """"""""""""""""""""""cscope设置""""""""""""""""""
- set cscopequickfix=s-,c-,d-,i-,t-,e-
- if has("cscope")
- set csprg=/usr/bin/cscope
- set csto=1
- set cst
- set nocsverb
- " add any database in current directory
- if filereadable("cscope.out")
- cs add cscope.out
- endif
- set csverb
- endif
因为cscope将“ctrl+空格”作为映射键,但是这样会调出输入法,因此将~/.vim/plugin/cscope_maps.vim文件中的<C-@>替换为<F5>(或者是你没有映射过的你喜欢的快捷键)
进入C语言源代码目录,建立符号表:
mishuang@msh:~/linux/linux0.11/source-0.11> cscope -R
ctr-D退出后,当前目录会多一个文件cscope.out,这个文件比tags大多了。
使用指南
1)使用下面的命令直接进入main函数定义的地方,如果有多个的话,输入索引号,回车。
wsh@wsh:~/linux/linux0.11/source-0.11> vi -t main
2)将光标停留在一个函数或变量上,"ctrl+]",将直接跳转到定义该函数的地方。
3)将光标停留在一个函数或变量上,"ctrl+\"再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车即可。
4)将光标停留在一个函数或变量上,<F5>再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车后会以水平方式在另外一个窗口显示。
5)将光标停留在一个函数或变量上,<F5><F5>再输入s,这样就会出现所有调用、定义该函数的地方,输入索引号,回车后会以垂直方式在另外一个窗口显示。
6)ctrl+t回到原来跳转前的地方,连续按两下''可以再回去。
附:
vim分割窗口的操作
:split 水平(上下)分割窗口
:vsplit或者CTRL-W v 垂直(左右)分割窗口
:new 水平分割窗口,创建空文件
:vnew 垂直分割窗口,创建空文件
vim多窗口操作命令
:qall 退出所有窗口
:wall 保存所有窗口
:wqall或者:xall 保存并退出所有窗口
:wqall!或者:xall! 保存并退出所有窗口,如果有的文件只读,不需要先设置写权限
:qall! 强制退出所有窗口
CTRL-W W 在窗口间移动
CTRL-W O 关闭其他所有窗口
Ctrl+]:跳转到定义
Ctrl+o:返回
Ctrl+/ c:查看调用
Ctrl+/ s:查看所有引用
出现错误的解决方法如下:
配置vim插件遇到下面的错误 处理 /root/.vim/plugin/cscope_map.vim 时发生错误:
第 1 行:
E474: 无效的参数: fileformat=unix^M
第 2 行:
E492: 不是编辑器的命令: ^M
第 26 行:
E492: 不是编辑器的命令: ^M
第 27 行:
E492: 不是编辑器的命令: ^M
第 30 行:
E15: 无效的表达式: has("cscope")^M
第 166 行:
E171: 缺少 :endif 解决办法 插件内的回车符,使用了^M——这是windows系统下专用的'\r\n'中的'\r'
解决方法:
用vim打开该插件
:set ff=unix
:w
重启vim即可。 :set fileformat=unix
使用vim是出现了下面的错误 处理 /root/.vim/plugin/cscope_map.vim 时发生错误:
第 42 行:
E568: 重复的 cscope 数据库未被加入
解决办法: 在 .vimrc中加上
:set nocscopeverbose 原因是/etc/vimrc中已经将cscope.out读入,在plugin中也读了一遍,这样就有两遍 <C+\>c 表示:先按ctrl+\,松开然后按c
|