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>')