打印
[手机平台]

Ubuntu下创建Vim+Taglist+Cscope+Ctags组合编辑器

[复制链接]
2449|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wshww510|  楼主 | 2013-10-11 13:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

相关帖子

沙发
wshww510|  楼主 | 2013-10-15 10:08 | 只看该作者
没人顶!

使用特权

评论回复
板凳
zzx__| | 2013-10-20 19:26 | 只看该作者
我来给你顶顶!

使用特权

评论回复
地板
从小木丁丁| | 2014-5-25 13:05 | 只看该作者
wshww510 发表于 2013-10-15 10:08
没人顶!

我帮你顶,ubuntu是个好东西,可惜不普及

使用特权

评论回复
5
从小木丁丁| | 2014-5-25 13:06 | 只看该作者
zzx__ 发表于 2013-10-20 19:26
我来给你顶顶!

哪里都能看到你的影子

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

179

帖子

0

粉丝