欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2024/9/3 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Ubuntu下创建Vim+Taglist+Cscope+Ctags组合编辑器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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


    与50位技术专家面对面20年技术见证,附赠技术全景图

    总结

    以上是生活随笔为你收集整理的Ubuntu下创建Vim+Taglist+Cscope+Ctags组合编辑器的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。