autocmd проверить имя файла в vim?
Я хочу написать некоторые autocmd, которые проверяют, является ли имя файла тем или иным..
Я старалась:
autocmd VimEnter * if % is "preamble" | Explore | endif
autocmd VimEnter * if %=="preamble" | Explore | endif
autocmd VimEnter * if &filename == "preamble" | Explore | endif
но ничего из этого не работает?
Что делать?
(этот пример чрезмерно упрощен, обратите внимание, что я также хотел бы иметь оператор else).
4 ответов
вы должны получить текущее имя файла @%. Например, echo @% даст вам имя файла, тогда как echo % не будет. Однако для действий с файлом используйте %, например,source %.
это, вероятно, должно работать для того, что вы хотите сделать:
autocmd VimEnter * if @% == 'preamble' | echo 'hello' | else | echo 'world' | endif
есть две проблемы с примерами в исходном посте:
ни
%, ни&filenameвернет имя файла, как вы их использовали.
Посмотри в справке
дополнительная информация с помощью '@%' с autocmd
некоторые autocmd событий не поддерживают на @% именем Register для чтения текущего имени файла. В этих случаях лучше использовать :
expand('<afile>')