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文件的配置信息:

  1. 显示行号   
  2. set number   
  3.    
  4. "检测文件的类型   
  5. filetype on   
  6.  
  7. "记录历史的行数   
  8. set history=1000   
  9.  
  10. "自动对齐   
  11. set autoindent   
  12. set cindent   
  13.    
  14. "智能选择对齐方式   
  15. set smartindent   
  16.    
  17. "tab为4个空格   
  18. set tabstop=4   
  19.    
  20. "当前行之间交错时使用4个空格   
  21. set shiftwidth=4   
  22.    
  23. "设置匹配模式,输入做括号会出现右括号   
  24. set showmatch   
  25.  
  26. "编辑时显示光标状态   
  27. set ruler   
  28.  
  29.  
  30. "快速匹配   
  31. set incsearch 
  32.  
  33. "修改文件自动备份   
  34. if has("vms") 
  35.     set nobackup 
  36. else 
  37.     set backup 
  38. endif 
  39.  
  40. """""""""""""设置开启ctags"""""""""""""   
  41. set tags=/home/zhouyl/linux-3.4.7/tags;"在这设置ctags -R 后生成的tags文件所在目录,下面有介绍,如果需要配置多个tags。只需如下再添加即可 
  42. set tags=/home/zhouyl/rap/libpcap-1.3.0/tags; 
  43. set autochdir 
  44.  
  45.  
  46. """""""""""""""""Taglist设置"""""""""""""""""         
  47. ""let Tlist_Auto_Open = 1             
  48. let Tlist_Ctags_Cmd = '/usr/bin/ctags' 
  49. let Tlist_Show_One_File = 1 
  50. let Tlist_Exit_OnlyWindow = 1 
  51.  
  52.  
  53. """"""""""""""""""""""cscope设置""""""""""""""""""   
  54. set cscopequickfix=s-,c-,d-,i-,t-,e- 
  55. if has("cscope") 
  56. set csprg=/usr/bin/cscope 
  57. set csto=1 
  58. set cst 
  59. set nocsverb 
  60. " add any database in current directory   
  61. if filereadable("cscope.out") 
  62. cs add cscope.out 
  63. endif 
  64. set csverb 
  65. 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


你可能感兴趣的:(linux,ubuntu,vim,编辑器)