Как выполнить команду при запуске vim


11

Я только что установил плагин для Python, который отображает дерево методов. Поэтому я хотел бы открыть дерево при запуске, поэтому нет необходимости нажимать кнопки каждый раз, когда я открываю какой-либо .pyфайл. Но я хочу, чтобы эта команда выполнялась только для .pyфайлов. Вот как выглядит мой кусок vimrc:

nmap <F8> :TagbarToggle<CR>

Есть ли способ выполнить эту команду при запуске только для .pyфайлов?


Привет, Святой Антарио. Вы можете заметить, что ваш принятый ответ имеет гораздо меньше голосов, чем альтернативный ответ.
цыплята

Ответы:


8

Добавьте в свой .vimrc:

au BufEnter *.py :TagbarToggle<CR>

где

  • auэто autocmdавтоматически выполнять команду.

  • BufEnter это когда вы вводите файл в первый раз.

  • *.py для файлового типа Python.

  • а остальное - команда, которая будет выполнена

2
Это добавит дополнительную автокоманду каждый раз при получении .vimrc. Чтобы предотвратить это, строка должна быть заключена в группу augroup, которая удаляет команду. См :help augroup-delete.
Богатый

: augroup testgroup: autocmd! : au BufEnter * .py: TagbarToggle <CR> augroup END это нормально?
Капил

1
Выглядит хорошо для меня!
Богатый

11

На мой взгляд, самый простой способ сделать это - просто добавить команду в файл в вашем .vim/vimfilesкаталоге:

~/.vim/after/ftplugin/python.vim

или для Windows:

$HOME\vimfiles\after\ftplugin\python.vim

Этот метод описан в :help ftplugin-overrule(элемент списка 3), хотя контекст (изменение настроек) немного отличается.

Он предлагает следующие преимущества по сравнению с техникой автокоманд, описанной kapil .

  1. Меньше кода . Вы просто пишете Vimscript, который хотите выполнить. Вам не нужно кодировать автокоманду, окружать ее augroupи autocommand!очищать команды.

  2. Меньше накладных расходов . Vim уже определяет тип файла и проверяет его наличие after/ftplugin/filetype: зачем добавлять дополнительную автокоманду, которая выполняет ту же задачу?

  3. Уборщик.vimrc . Я думаю, что лучше иметь функциональность, специфичную для типа файла, отдельно от моей .vimrc. (Некоторые с этим не согласны: см. Недостатки ниже.)

У этого также есть несколько незначительных недостатков:

  1. Это работает, только если вы используете обнаружение типов файлов Vim. ( :help filetype)

    Тем не менее, это, как правило, одна из первых настроек, которую люди включают в свой .vimrc, и я бы поспорил, что почти у всех пользователей Vim она уже включена.

  2. Некоторые люди предпочитают хранить все свои конфигурации в своем .vimrcфайле.


1
+1 за ftplugin/<filetype>.vimлучшее разделение проблем :)
LEI
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.