前回、VimパッケージをNeoBundleで管理できるようにした。
近々、Cのソースをガッツリ解析することとなりそうである。そのためVimを駆使して、コード解析を容易にできないか、調査してみた。
ctagsのインストール
C言語のソース解析といえばctagsが必須だろう。サクラエディタでも非常にお世話になっている。
と、いうわけで下記コマンドにてインストールする。
$ sudo apt-get install ctags
インストールが終わったらソースの格納先へ移動し、タグファイルを作成する。
(ソースのルートディレクトリにて) $ ctags -R
これにてVim上からタグジャンプができるようになる。タグジャンプとは関数やマクロのシンボルを追いかけて、対象の関数やシンボルの宣言部分へジャンプする機能である。
VimでCソースを開き、関数名の上で<C-]>(「Ctrlキー」+]キー)を押すと、その関数が宣言されている箇所へジャンプできる。
ctagsについては下記が参考になる。
Trinityをインストール
Trinityをインストールすると、Vimがeclipseのような統合開発環境(っぽい画面)になる。
こんな感じ。

各画面は下記の表示となっている。
これをまとめて表示するのがTrinityというプラグイン。統合開発環境の表に画面を並べてくれる。画面の中でも特にSrcExplが便利で、タグジャンプしなくても関数の呼び元と呼び先を同時に確認できる。
この環境を実現するためにはNeoBundleで4つのプラグインをインストールする必要がある。.vimrcにインストールするプラグインを追記する。
set nocompatible " be iMproved
filetype off
if has('vim_starting')
set runtimepath+=~/.vim/bundle/neobundle.vim
call neobundle#rc(expand('~/.vim/bundle/'))
endif
" originalrepos on github
NeoBundle 'Shougo/neobundle.vim'
NeoBundle 'Shougo/vimproc'
NeoBundle 'VimClojure'
NeoBundle 'Shougo/vimshell'
NeoBundle 'Shougo/unite.vim'
NeoBundle 'Shougo/neocomplcache'
NeoBundle 'Shougo/neosnippet'
NeoBundle 'jpalardy/vim-slime'
NeoBundle 'scrooloose/syntastic'
" コード解析用にここから追加
NeoBundle 'The-NERD-tree'
NeoBundle 'taglist.vim'
NeoBundle 'https://github.com/wesleyche/SrcExpl.git'
NeoBundle 'https://github.com/wesleyche/Trinity.git'
filetype plugin indent on " required!
filetype indent on
syntax on
SrcExplとTrinityはgithubのURLが変更となっており、上記URLでないと上手くインストールできないので要注意である。
Trinityの操作
Vimを起動し、下記コマンドを入力すると4画面表示になる。
:TrinityToggleAll
各画面を行き来する場合、Vimの画面分割と同様に操作する。例えば、右画面に移動する場合<C-w>l, 左画面に移動する場合<C-w>hで移動できる。
Vimを閉じる場合は
:qa
と入力すれば、全ての画面を一度に閉じられる。