Получение VIM Tagbar для запуска при открытии определенных типов файлов

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

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

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

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

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

2 ответа

Решение

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

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

У меня на самом деле есть точная конфигурация, настроил мой 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

Другие вопросы по тегам