Я только что установил плагин для Python, который отображает дерево методов. Поэтому я хотел бы открыть дерево при запуске, поэтому нет необходимости нажимать кнопки каждый раз, когда я открываю какой-либо .py
файл. Но я хочу, чтобы эта команда выполнялась только для .py
файлов. Вот как выглядит мой кусок vimrc:
nmap <F8> :TagbarToggle<CR>
Есть ли способ выполнить эту команду при запуске только для .py
файлов?
normal-mode
startup
St.Antario
источник
источник
Ответы:
Добавьте в свой
.vimrc
:где
au
этоautocmd
автоматически выполнять команду.BufEnter
это когда вы вводите файл в первый раз.*.py
для файлового типа Python.источник
.vimrc
. Чтобы предотвратить это, строка должна быть заключена в группу augroup, которая удаляет команду. См:help augroup-delete
.На мой взгляд, самый простой способ сделать это - просто добавить команду в файл в вашем
.vim/vimfiles
каталоге:или для Windows:
Этот метод описан в
:help ftplugin-overrule
(элемент списка 3), хотя контекст (изменение настроек) немного отличается.Он предлагает следующие преимущества по сравнению с техникой автокоманд, описанной kapil .
Меньше кода . Вы просто пишете Vimscript, который хотите выполнить. Вам не нужно кодировать автокоманду, окружать ее
augroup
иautocommand!
очищать команды.Меньше накладных расходов . Vim уже определяет тип файла и проверяет его наличие
after/ftplugin/filetype
: зачем добавлять дополнительную автокоманду, которая выполняет ту же задачу?Уборщик
.vimrc
. Я думаю, что лучше иметь функциональность, специфичную для типа файла, отдельно от моей.vimrc
. (Некоторые с этим не согласны: см. Недостатки ниже.)У этого также есть несколько незначительных недостатков:
Это работает, только если вы используете обнаружение типов файлов Vim. (
:help filetype
)Тем не менее, это, как правило, одна из первых настроек, которую люди включают в свой .vimrc, и я бы поспорил, что почти у всех пользователей Vim она уже включена.
Некоторые люди предпочитают хранить все свои конфигурации в своем
.vimrc
файле.источник
ftplugin/<filetype>.vim
лучшее разделение проблем :)