taglist.vim を使ってみた。

シェアする

vim with taglist.vim

プログラム内で使用している function とか variable とかをサイドバーで表示して見やすくしたりアクセスしやすくしたりするアレです。

インストールは neobundle.vim 使ってさっくりと。ctags はデフォルトでは入ってなかったのでこれもインストールします。

$ sudo apt-get install exuberant-ctags 

設定は最近は php ばっかかいてる事が多いのでそれに合わせてます。

$ cat ~/.vimrc
" taglist
set tags=tags
let Tlist_Ctags_Cmd = "/usr/bin/ctags"
let Tlist_Show_One_File = 1 "現在編集中のソースのタグしか表示しない
let Tlist_Exit_OnlyWiindow = 1 "taglist が最後のウインドウなら vim を閉じる
"let Tlist_Enable_Fold_Column = 1 " 折り畳み
map <silent> <leader>tl :TlistToggle<CR>
let g:tlist_php_settings = 'php;c:class;d:constant;f:function'

初期設定では variable も taglist で表示するのだけど、ごちゃごちゃとして邪魔だったので function だけにした。このへんは taglist.vim に言語別のデフォルトの設定が記述されているのでとてもわかりやすい。

taglist を表示させるのは <leader>tl にした。<leader> はデフォルトではバックスラッシュです。最近まで知らなかった...。

そして、taglist を表示した状態でタブを移動したら下記のようなエラーが出たので調べたらパッチあてろとの事でそれも対処した。

エラー内容

Error detected while processing function <SNR>26_Tlist_Refresh_Folds:
line   24:
E16: Invalid range: 4,19fold

ぐぐったら以下のスレッドがひっかかった。というかぐぐって3つしかひっかからないって相当レアなエラーな気がする。

上記にある taglist.diff を適応するとエラーはでなくなった。

一応、taglist.diff の中身を以下に記載しておきます。

diff --git a/vim/.vim/bundle/taglist/plugin/taglist.vim b/vim/.vim/bundle/taglist/plugin/taglist.vim
index 59901f6..74487a1 100644
--- a/vim/.vim/bundle/taglist/plugin/taglist.vim
+++ b/vim/.vim/bundle/taglist/plugin/taglist.vim
@@ -4097,6 +4097,11 @@ endfunction
 " window. Used after entering a tab. If this is not done, then the folds
 " are not properly created for taglist windows displayed in multiple tabs.
 function! s:Tlist_Refresh_Folds()
+
+    if g:Tlist_Show_One_File
+      return
+    endif
+
     let winnum = bufwinnr(g:TagList_title)
     if winnum == -1
         return

これで vim 再起動すればおk。便利ですね。

Sponsored Link

シェアする

フォローする

コメント

  1. […] を記述。ここを参考にした。 […]

  2. 犬歯 より:

    直りました、ありがとうございます