Получение VIM Tagbar для запуска при открытии определенных типов файлов - PullRequest
7 голосов
/ 02 ноября 2011

Мне бы хотелось, чтобы плагин VIM тегов запускался при открытии определенных типов файлов, поэтому я добавил в свой .vimrc следующее:

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

Однако, это не работает, как я ожидал. Он открывает боковое окно, но боковое окно ничего не отображает, и мой курсор находится внутри него. Я не могу переключать окна щелчком или командами перемещения CTRL-W.

Однако, когда я запускаю TagbarOpen вручную, он работает просто отлично.

Кто-нибудь еще пробовал это, или вышеприведенная неправильная команда для выдачи?

Ответы [ 2 ]

6 голосов
/ 02 ноября 2011

Интересно, что это побочный эффект удобной функциональности, который я не ожидал. Вот что происходит: если TagbarOpen вызывается, когда окно уже открыто, Tagbar заставляет курсор перейти к своему окну вместо того, чтобы ничего не делать (для удобства, как я уже сказал). Поэтому каждый раз, когда вы пытаетесь покинуть окно, переключаясь на окно Haskell, автокоманда заставляет его отскочить назад. Я выдвинул изменение, которое удаляет эту функциональность - вероятно, это было не так полезно с самого начала. Поэтому, если вы попробуете версию для разработки на GitHub (https://github.com/majutsushi/tagbar),, она должна работать.

То, что окно пустое, имеет другую причину: Haskell не поддерживается Exuberant Ctags по умолчанию. Но кто-то написал хорошую альтернативу для Haskell, которая работает с Tagbar здесь: https://github.com/bitc/lushtags.

3 голосов
/ 23 апреля 2014

У меня на самом деле есть точная конфигурация, настроил мой vimrc для файлов php. Панель тегов открывается с загруженной функцией / переменными, курсор остается в исходном файле 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) и последняя сборка тега из https://github.com/majutsushi/tagbar

...