骑士注册 登录
Linux 中国◆开源社区 返回首页

执着的夏风的个人空间 https://linux.cn/space/27493 [收藏] [复制] [分享] [RSS]

日志

搭建vim版的source insight

已有 2009 次阅读2016-09-17 00:03 |个人分类:嵌入式

虽然我不是vim高手, 但是在vim编辑器下完成工作完全没问题.  下面是我自己搭建的vim版的source insight,  使用的工具 Taglist + Source Explorer + NERDTree  是利用它可以很方便地查看内核源代码. 对于学习内核和驱动开发的人来说很有帮助. 好了, 废话少说, 先上效果图.

从上图上看, 左边NERD Tree, 中间上半部分是显示代码的窗口, 下半部分是Source Explorer, 右边是Tag list.

以下步骤是在ubuntu环境下:

1. 安装 ctags.

sudo apt-get install ctags

2. 安装cscope.

sudo apt-get install cscope

3. 去vim官网上下载 NEED Tree, Source Explorer 和 Tag List.

4. 在家目录中新建一个.vim目录

mkdir .vim

5. 进入.vim目录, 新建一个plugin目录

mkdir plugin

6. 把刚才下载好的三个工具解压到.vim目录中

7. 把其中的 NERD_tree.vim, srcexpl.vim, taglist.vim 这三个文件移动到plugin目录中

8. 最后就是编辑配置脚本了. 在家目录中打开.vimrc文件

vim ~/.vimrc

9. 编辑脚本

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"

" Taglist + Source Explorer + NERDTree

"

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"---------------------------------------------"

" ctags database path 设置

"---------------------------------------------"

set tags=/home/xxx/linux-3.5/tags

"---------------------------------------------"

" cscope database path 设置

"---------------------------------------------"

set csprg=/usr/bin/cscope "cscope位置

set csto=0 "cscope DB search first

set cst "cscope DB tag DB search

set nocsverb "verbose off

cs add /home/xxx/linux-3.5/cscope.out   /home/xxx/linux-3.5

set csverb "verbose off


"---------------------------------------------"

" Tag List 环境设置

"---------------------------------------------"

filetype on "vim filetype on

nmap <F7> :TlistToggle<CR>

let Tlist_Ctags_Cmd="/usr/bin/ctags" "ctags程序位置

let Tlist_Inc_Winwidth=0 "window width change off

let Tlist_Exit_OnlyWindow=0 "tag/file完成选择时taglist window close=off

let Tlist_Auto_Open=0 "vim 开始时window open=off

let Tlist_Use_Right_Window=1 "vim 开始时window open=off


"---------------------------------------------"

" Source Explorer 环境设置

"---------------------------------------------"

nmap <F8> :SrcExplToggle<CR>

nmap <C-H> <C-W>h

nmap <C-J> <C-W>j

nmap <C-K> <C-W>k

nmap <C-L> <C-W>l


let g:SrcExpl_winHeight=8 "指定SrcExpl Windows 高度

let g:SrcExpl_refreshTime=100 "refreshing time=100ms

let g:SrcExpl_jumpKey="<ENTER>" "跳转至相应定义definition

let g:SrcExpl_gobackKey="<SPACE>" "back

let g:SrcExpl_isUpdateTags=0 "tag file update=off


"---------------------------------------------"

" NERD Tree 环境设置

"---------------------------------------------"

let NERDTreeWinPos="left" "NERD Tree 位置=左侧

nmap <F9> :NERDTreeToggle<CR>

note:  此时你应该会问: 前面两个 ctags和cscope是怎么回事? 
比如, 如果你要查看Linux kernel源代码, 首先在代码根目录中执行以下命令
1. make ctags ARCH=架构名    比如我想要查看基于arm平台下的内核源码, 就执行命令 make ctags ARCH=arm
2. make cscope ARCH=架构名
3. 执行完这两个命令后, 会在源码根目录中生成这些文件: tags, cscope.files, cscope.out, cscope.out.in, cscope.out.po
4. 最后就是要配置tags和cscope这两个文件的路径了.
5. 这就与前面这两个ctags 和 cscope的配置有关了. 光看代码亲们应该就知道怎么配置了吧.

最后, 一切准备好后, 就是开始享受了.

全部作者的其他最新日志

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。