vim + ctags + taglist配置和使用 【及】 一键安装 ctags和cscope的方法 【及】vim语法高亮,自动缩进,python 自动缩进设置

时间:2022-09-01 17:20:31

1, vim + ctags + taglist配置和使用

taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!

1、首先安装ctags

首先是ctags的安装,推荐使用exuberant ctags,我们可以从其官方网站上下载它的源码包,进行解压缩,编译,安装即可。
1)ubuntu安装
sudo apt-get install exuberant-ctags

( 或者下载 手动安装 download ctags-5.8.tag.gz (地址

    tar xzvf ctags-5.8.tag.gz

    cd ctags-5.8

    ./configure

    sudo make

    sudo make install

)

至此,ctags的安装已经完成,可以使用ctags命令来检测时候完成安装。

检测:

在自己的项目文件夹下执行 $ctags -R *  (不执行就起不到效果)   
注:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件, 当用户在当前目录中运行vi时,会自动载入此tags文件。
然后就可以入手了。
常用的命令:
熟练的使用ctags仅需记住下面七条命令:(很简单吧,呵呵)
       1. $ ctags –R *    ($ 为Linux系统Shell提示符)
       2.   $ vi –t tag       (请把tag替换为您欲查找的变量或函数名)
       3. :ts                (ts 助记字:tags list, “:”开头的命令为VI中命令行模式命令)
       4. :tp                (tp 助记字:tags preview)---此命令不常用,可以不用记
       5. :tn                (tn 助记字:tags next) ---此命令不常用,可以不用记
       6. Ctrl + ]
       7. Ctrl + T


2、安装taglist

下面我们来进行taglist的安装,同ctags的安装一样这里我们也是去其官方网站下载解压其源码包。

具体步骤如下:

下载地址 

解压文件
# unzip -d    taglist taglist_45.zip // 解压到 taglist

   我们首先在家目录下创建.vim文件(mkdir .vim)   以便于存放vim的插件。 然后把我们下载到的taglist源码包进行解压,把其中的doc和plugins目录拷贝到.vim文件夹下。 进入到vim在命令模式下输入helptaglist~/.vim/doc即完成了taglist的安装。在vim中输入Tlist,如果出现如下画面则证明安装成功。


也可以这样 配置
$cd taglist/
$cp doc/taglist.txt /usr/share/vim/vim72/doc/
$cp plugin/taglist.vim /usr/share/vim/vim72/plugin/
基本上配置完成
启动vim,用 “:helptags .”来配置好帮助文件
重启vim,用“:TlistToggle”来打开和关闭taglist窗口。
可以用“:help taglist”来获得更多帮助信
若要默认打开taglist,_vimrc中加入

let Tlist_Auto_Open=1

set tags=tags;

set autochdir;

  注意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目 录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。



完成了taglist和ctags的安装,但是这时ctags和taglist还没有联系起来。为此,我们需要修改~/.vim/plugin/taglist.vim文件,找到if !exitsts(loaded_taglist)这一行,并在其前面添加let Tlist_Ctags_Cmd="/usr/local/bin/ctags" ps:在这里需要注意的是我们在设置直线需要察看我们ctags可执行可执行路径到底是在哪里,我们可以进入到上述目录,一直找到具体的可执行的文件ctags,并将其路径赋给Tlist_Ctags_Cmd(例如我的路径是/usr/local/bin/ctags/ctags vim+taglist+ctags阅读代码 为了使用vim+taglist+ctags来阅读代码,我们首先必须生成函数和变量的符号信息。这一步我们使用ctags完成。 例如我们使用我们刚才下载的ctags的源码包为例。 //生成tag 执行 ctags -R *(-R递归作用) //检查是否生成了tags ls -l tags 生成tag以后我么就可以进行察看了,具体步骤见如下截图 vim + ctags + taglist配置和使用  【及】 一键安装 ctags和cscope的方法 【及】vim语法高亮,自动缩进,python 自动缩进设置


vim输入:TlistToggle来打开侧面窗口 (或者直接:Tlist、TlistOpen也可以)


使用ctr 和两次w在侧窗口和主窗口之间进行切换
vim + ctags + taglist配置和使用  【及】 一键安装 ctags和cscope的方法 【及】vim语法高亮,自动缩进,python 自动缩进设置
  移动到土体的函数后,按enter键察看具体函数。(可以利用ctags的特性在鼠标指定处比如"apue.h",Nomal 输入 gf,转到头文件"apue.h") vim + ctags + taglist配置和使用  【及】 一键安装 ctags和cscope的方法 【及】vim语法高亮,自动缩进,python 自动缩进设置
 
  有时我们想察看的函数在其他代码文件中定义,这是我们只要将光标定位到想察看的函数上,然后按ctr+]键就可以进行察看了,按ctr+O可以跳回到源文件中。

具体 vim 高阶应用见 http://easwy.com/blog/archives/advanced-vim-skills-catalog/


第一步要达到效果是不是很麻烦,下面介绍一种简单的方法

2, 一键安装 ctags和cscope的方法

用vim的插件搭建一个类似sourceinsight的vi,同时加了一些vim及脚本,最近看到很多人想要有sourceinsight功能的vim,由于整个配置还是有点麻烦,于是将配置的vim发上来,只需一条命令,就可安装完ctagslist,cscope,fielexporeer等插件,达到sourceinsight的效果。

安装过程:

到这里 下载附件: vim_install.tar.gz,然后解压,然后切到解压后的文件夹,
执行sudo ./install即可(注意安装前备份好自己的vimrc 防止之前你的某些设置丢失,便于查找)。
然后执行sudo apt-get  install vim

或者这样安装:
#Clone repository:
git clone https://github.com/ustcdane/vim_file_info.git
#install
cd vim_install
sudo ./install (注意会把之前配置的.vimrc文件覆盖,使用此命令前对自己的.vimrc进行备份)

可能会出现错误:
"Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH.
Plugin is not loaded."

没有关联Ctags和Taglist

在~/.vimrc中加入 : let Tlist_Ctags_Cmd='/usr/bin/ctags'

其实我已经在 install 中加入了,如果还是出现错误,则找到你的可执行程序ctags 所在处手动的在~/.vimrc中加入let Tlist_Ctags_Cmd='你的ctags路径'

使用指南:

当我们需要阅读代码时,必须先生成tags文件和cscope.out文件,这个可以通过已安装程序中的脚本自动生成
比如你要阅读source文件夹下的代码就使用cs source
当source下有文件更新了,你可以使用 cs source -u来更新

常用命令:

进入vim后
wm打开ide界面,再次wm就关闭了
ctrl+w在各个窗口切换
ctrl+h切换到左边的窗口
ctrl+j切换到下面的窗口
ctrl+l切换到右边的窗口
ctrl+k切换到上面的窗口
ctrl+]函数跟踪


快捷键 cs f s/g/....

s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文
当然在底行模式下介键入 help 会弹出 vim的帮助。

使用cscope查找do_fork函数的定义:
在vim命令行下执行:

:cs f g do_fork

就可以查看do_fork的全局定义了。

cscope常用快捷键:

先按 ctrl+\ 然后 再按以下键:  

ctrl+]:在函数调用的地方跳转到函数定义的地方
ctrl+t:返回上一个查找的地方


这个方法是从网上学到的,并作了部分修改


3, 设置vim语法高亮显示和自动缩进

1、配置文件的位置在目录 /etc/vim 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc” , (如果你使用第二中的一键安装 ctags和cscope的方法 建议 在自己的家目录下的.vimrc相应修改) 。例如,/root目录下,通常已经存在一个.vimrc文件。
       2、设置语法高亮显示
1) 打开vimrc,添加以下语句来使得语法高亮显示:
    syntax on
2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
     export TERM=xterm-color
      
       3、设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)
              1)设置(软)制表符宽度为4:
                            set tabstop=4
                            set softtabstop=4
              2)设置缩进的空格数为4
                          set shiftwidth=4
              3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
                    set autoindent
              4)设置使用 C/C++ 语言的自动缩进方式:
                          set cindent
              5)设置C/C++语言的具体缩进方式(以我的windows风格为例):
                            set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
              6)如果想在左侧显示文本的行号,可以用以下语句:
                          set nu
            7)最后,如果没有下列语句,就加上吧:
                    if &term=="xterm"
                         set t_Co=8
                         set t_Sb=^[[4%dm
                         set t_Sf=^[[3%dm
                    endif



总结, 需要添加的内容:
A,语法高亮在/etc目录下的profile文件中添加以下语句:
export TERM=xterm-color

B,其它 在 /etc/vim/vimrc的 添加:

syntax on
set nu
set tabstop=4
set softtabstop=4
set shiftwidth=4
set cindent
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s

if &term=="xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif

hi Comment ctermfg=6



Other:
vim python 的自动缩进设置方法。
缩进设置最常用的是:
:filetype indent on
它将开启针对文件具体类型的缩进

与TAB相关的变量表
变量名 缩写 含义
tabstop=X ts 编辑时一个TAB字符占多少个空格的位置。
shiftwidth=X sw 使用每层缩进的空格数。
(no)expandtab (no)et 是否将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V<TAB>
softtabstop=X sts 方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格
(no)smarttab (no)sta 开启时,在行首按TAB将加入sw个空格,否则加入ts个空格。


根据上面的准则,我们可以将下述设置加入到~/.vimrc中:

filetype indent on
autocmd FileType python setlocal et sta sw=4 sts=4

第一行开启自动的缩进检测。最后一行则根据Python语言的建议(将tab展成四个空格)进行了专门设置。
好了,你可试下了~~