Я просматриваю свои виртуальные файлы, чтобы их убирать. Я заметил, что со временем я добавил различные специфические параметры типа файла различными непоследовательными способами. Предположим, что я настраиваю Python:
-
au BufRead,BufNewFile *.py (do something). Мне это не нравится, потому что некоторые файлы Python могут не иметь завершения .py. -
au FileType python (do something). Это кажется лучшим вариантом, поскольку он не зависит от файла с завершением .py. Недостатком является то, что Vim не знает о некоторых типах файлов. Я могу заставить Vim распознавать дополнительные типы файлов, но у меня также есть различные непоследовательные способы сделать это: файл.vim/filetype.vim, другой в.vim/after/filetype.vimи различные командыset filetypeв.vimrc. -
Добавьте файл
.vim/ftplugin/python.vimс конкретными настройками типа файла. Я понимаю, что$VIMRUNTIME/ftplugin/python.vimможет переопределить все настройки, которые я здесь делаю. Одна из проблем заключается в том, что я не уверен, как это взаимодействует с.vim/filetype.vimи.vim/after/filetype.vim. -
Добавьте
.vim/after/ftplugin/python.vim. Я понимаю, что это загружается после$VIMRUNTIME/ftplugin/python.vim, чтобы он мог перезаписать настройки. Как и в предыдущем методе, я не уверен, как он взаимодействует с файламиfiletype.vim.
Итак, у меня есть по крайней мере четыре способа сделать это, не говоря уже о синтаксических файлах и специфичных для типа файлов плагинах. Мне кажется, что лучший способ сделать это - установить конкретные параметры файла в after/ftplugin, чтобы они не перезаписывались, и filetypes.vim в after по той же причине.
Однако, прежде чем продолжить, я хотел бы спросить, есть ли у кого-нибудь предложения о наилучшем способе работы с конкретными настройками типа файла.