私はctags
タグを生成し、 (この wiki ページset tags+=~/.vim/tags/cpp
をたどっただけです) に配置するために使用しています。私のファイルには以下のような設定もあるので、現在のファイルの nerdtree ビューアーを自動同期できます (これを参照):.vimrc
vimrc
" returns true iff is NERDTree open/active
function! rc:isNTOpen()
return exists("t:NERDTreeBufName") && (bufwinnr(t:NERDTreeBufName) != -1)
endfunction
" returns true iff focused window is NERDTree window
function! rc:isNTFocused()
return -1 != match(expand('%'), 'NERD_Tree')
endfunction
" calls NERDTreeFind iff NERDTree is active, current window contains a modifiable file, and we're not in vimdiff
function! rc:syncTree()
if &modifiable && rc:isNTOpen() && !rc:isNTFocused() && strlen(expand('%')) > 0 && !&diff
NERDTreeFind
wincmd p
endif
endfunction
autocmd BufEnter * call rc:syncTree()
問題は、~/.vim
実際には別のフォルダーへのシンボリック リンクであることです (そのため、git または他の VCS を使用してすべてのドットファイルを簡単に管理できます)。Ctrl+を使用]して定義 (タグ情報は~/.vim/tags/cppにあります) を探すと、常にエラーが発生します。
detected while processing function rc:syncTree..<SNR>15_findAndRevealPath..102:
line 2:
E605: Exception not caught: NERDTree.InvalidArgumentsError: /home/hongxuchen/.vim/tags/cpp_src/stl_iterator.h should be under /home/hongxuchen/data_backup/dotfiles/_vim/tags/cpp_src
set tags+=/real/path/to/cpp
で代わりに使用する必要があるということvimrc
ですか?