Запуск панели тегов VIM при открытии определенных типов файлов

#vim #tagbar

#vim #панель тегов

Вопрос:

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

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

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

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

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

Ответ №1:

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

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

Ответ №2:

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