如何用Vim打造Linux下的Source Insight

git clone -airline/vim-airline.git ~/.vim/bundle/vim-airline配置Vim接下来需要对Vim进行一些配置以使其更加适合阅读和分析源码。

前言

对于软件开发者而言,代码编辑器是必不可少的工具之一。当然,有很多种代码编辑器可以选择,比如Sublime Text、Atom、Visual Studio Code等等。但对于Linux用户而言,Vim是最为常见和流行的代码编辑器之一。

虽然Vim看起来界面简陋,但实际上它拥有强大的功能和插件系统,并且支持各种编程语言。在这篇文章中,我将会分享如何使用Vim将其打造成类似于Windows下的Source Insight。

安装插件

首先需要安装一些插件才能使得Vim更加适合进行源码阅读和分析。

1. ctags

ctags是一个生成标签文件的工具。标签文件包含了程序中所有函数、变量定义以及其他符号信息,并且可以被其他程序使用来了解源代码结构以及快速跳转到指定位置。

在Ubuntu中可以通过以下命令进行安装:

“`

sudo apt-get install ctags

2. tagbar

可以通过以下命令进行安装:

git clone -no-ierukana/tagbar.git ~/.vim/bundle/tagbar

3. cscope

cscope是一个能够生成代码索引的工具,可以用于快速查找变量、函数、宏定义等。

sudo apt-get install cscope

4. vim-airline

vim-airline是一个美化Vim界面的插件。它提供了各种主题和状态栏模式,并且支持多种编程语言。

git clone -airline/vim-airline.git ~/.vim/bundle/vim-airline

配置Vim

接下来需要对Vim进行一些配置以使其更加适合阅读和分析源码。

1. 设置ctags作为标签文件生成器

在~/.vimrc中添加以下内容:

set tags=./tags;/

set autochdir

set complete-=i

autocmd BufWritePost *.c,*.cpp,*.h !ctags -R –extra=+q –fields=+iaS –langmap=c:.c.h.cpp –languages=c,c++ .

2. 配置tagbar

在~/.vimrc中添加以下内容:

“`

let g:tagbar_ctags_bin = ‘/usr/bin/ctags’

let g:tagbar_width = 25

nmap :TagbarToggle

这样每次按下F8都会打开或关闭tagbar窗口。

3. 配置cscope

set cscopeprg=/usr/bin/cscope

set csprg=/usr/bin/cscope

set cst

set nocsverb

set csto=0

if filereadable(“cscope.out”)

cs add cscope.out

endif

map s :cs find s =expand(““)

map g :cs find g =expand(““)

如何用Vim打造Linux下的Source Insight

map c :cs find c =expand(““)

map t :cs find t =expand(““)

“在normal模式下,按F9进入/退出quickfix窗口

nmap F9 :cw

4. 配置vim-airline

let g:airline_theme=’powerlineish’

let g:airline#extensions#tabline#enabled = 1

let g:airline#extensions#tagbar#enabled = 1

let g:airline_powerline_fonts=1

” 设置状态栏颜色

hi User1 guibg=#ff6600 gui=bold

” 设置当前行的背景颜色

hi CursorLineNr guibg=#444444 gui=bold

” 在状态栏显示当前文件类型和编码方式

function! AirStatusLineFileType()

return &filetype.’ ‘.&encoding.’ ‘

endfunction

” 在状态栏显示当前Git分支名(需要安装插件fugitive)

function! AirStatusLineGitBranch()

if system(‘git rev-parse –is-inside-work-tree’) =~ ‘true’

return ‘ ‘.fugitive#head().’. ‘

endif

return ”

let g:airline_left = ‘ [ ‘.AirStatusLineFileType().’ %f%m%r%h ‘.’] [ ‘.AirStatusLineGitBranch().’ %p%% ] ‘

使用Vim进行源码阅读和分析

现在,我们已经完成了Vim的配置和插件安装。接下来,让我们看一下如何使用Vim进行源码阅读和分析。

1. 生成标签文件

在需要查看的代码目录下执行以下命令:

ctags -R –extra=+q –fields=+iaS –langmap=c:.c.h.cpp –languages=c,c++ .

这将会生成一个名为tags的标签文件。

2. 打开代码文件并启用tagbar

打开要查看的代码文件,在normal模式下按F8即可打开tagbar窗口。此时可以在窗口中查看当前文件中所有函数、变量、宏定义等元素,并且可以通过鼠标点击或键盘快捷键跳转到相应位置。

3. 使用cscope进行快速定位

如果需要快速定位到某个函数/变量/宏定义等位置,可以使用cscope。在normal模式下输入Ctrl- s/g/c/t加上要查找的名称即可,例如:

– Ctrl- s function_name:查找函数function_name

– Ctrl- g variable_name:查找全局变量variable_name

– Ctrl- c macro_name:查找宏定义macro_name

– Ctrl- t type_name:查找数据类型type_name

4. 使用vim-airline美化界面

最后,使用vim-airline可以让Vim界面更加美观,同时在状态栏中显示当前文件类型、编码方式以及Git分支信息等。

通过以上配置和插件安装,我们已经成功将Vim打造成了类似于Windows下的Source Insight。现在你可以使用Vim进行源码阅读和分析,并且能够快速定位到各种元素位置。虽然这需要一些时间来配置和适应,但一旦掌握了技巧就能大大提高代码阅读效率。

Linux, Vim, Source Insight, 插件, 配置