7

我希望在打开某些文件类型时启动标签栏 VIM 插件,所以我在 .vimrc 中添加了以下内容:

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

但是,这并没有像我预期的那样工作。它打开了一个侧窗,但侧窗什么也不显示,我的光标被困在其中。我无法通过单击或 CTRL-W 移动命令切换窗口。

但是,当我手动运行 TagbarOpen 时,它工作得很好。

其他人尝试过这个,还是上面发出的错误命令?

4

2 回答 2

6

有趣的是,这是我没有预料到的便利功能的副作用。发生的情况是这样的:如果在窗口已经打开时调用 TagbarOpen,Tagbar 会使光标跳转到它的窗口,而不是什么都不做(为了方便,就像我说的那样)。因此,每次您尝试通过切换到 Haskell 窗口来离开窗口时,自动命令都会使其立即跳回。我已经推动了一项删除此功能的更改——一开始它可能并没有那么有用。因此,如果您尝试 GitHub 上的开发版本 ( https://github.com/majutsushi/tagbar ),它应该可以工作。

窗口为空的原因不同:Exuberant Ctags 默认不支持 Haskell。但是有人为 Haskell 写了一个很好的替代品,可以在这里与 Tagbar 一起使用:https ://github.com/bitc/lushtags 。

于 2011-11-02T15:33:38.387 回答
4

我实际上有这个确切的配置为 php 文件设置了我的 vimrc。标签栏打开并加载函数/变量,当 Vim 加载时光标停留在 php 源文件中:

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 (snapshot 72, Vim 7.4) 和来自https://github.com/majutsushi/tagbar的最新版本的 tagbar 上运行

于 2014-04-23T12:42:13.320 回答