2011-11-02 34 views
7

時,我想有,當我打開某些文件類型的tagbar VIM插件推出的推出,讓我增加了以下我的.vimrc:獲取VIM Tagbar在打開某些文件類型

if has("gui_running") 
    autocmd BufEnter *.hs nested TagbarOpen 

然而,這沒有按照我的預期工作。它會打開一個側窗,但側窗不顯示任何內容,而且光標被困在其中。我不能通過單擊或使用CTRL-W移動命令來切換窗口。

但是,當我手動運行TagbarOpen時,它工作得很好。

其他人試過這個,或者是上面發錯的命令?

回答

6

有趣的是,這是我沒有預料到的便利功能的副作用。會發生什麼呢:如果在窗口已經打開的時候調用TagbarOpen,Tagbar會讓光標跳轉到它的窗口,而不是什麼都不做(爲了方便,就像我說的)。因此,每當您嘗試通過切換到Haskell窗口離開窗口時,自動命令都會使其立即跳回。我推動了一項改變,即刪除了這項功能 - 它可能並不適用於開始。所以如果你在GitHub上嘗試開發版本(https://github.com/majutsushi/tagbar),它應該可以工作。

窗口是空的有一個不同的原因:默認情況下不支持Hasube的Exuberant Ctags。但有人爲Haskell編寫了一個很好的替代方案,與Tagbar一起工作:https://github.com/bitc/lushtags

3

我實際上有這個確切的配置設置我的vimrc PHP文件。 Tagbar打開與函數/變量加載,光標停留在PHP源文件時,Vim的負載:

autocmd FileType php call SetPHPOptions() 
function! SetPHPOptions() 
setlocal shiftwidth=4 tabstop=4 softtabstop=4 expandtab makeprg=php-xdebug\ % 
    :call tagbar#autoopen(0) 
endfunction 

替代「PHP」爲「HS」或你想要的任何其他文件類型。在文件類型列表:

$VIMRUNTIME/filetype.vim 

有它的MacVim(快照72時,Vim 7.4),和tagbar的最新版本運行從https://github.com/majutsushi/tagbar

相關問題