Вы помещали автокоманды в эти отдельные файлы как автокоманды? То есть содержит ли ваш ~/.vim/syntax/tex.vim
такие строки,
au FileType tex set expandtab
или это,
au BufRead,BufNewFile *.tex set expandtab
Если так, то это неправильно. Vim получает файлы в каталогах ftplugin, syntax и indent, когда открывается файл с типом файла, соответствующим имени плагина. Если плагин содержит автокоманды, эти автокоманды будут прочитаны и выполнены, но часть команды не будет выполняться до следующего запуска события.
Если вы хотите сделать некоторые настройки, зависящие от типа файла, поместите такую команду в ftplugin для этого типа файла.
setlocal expandtab
Не помещайте его в автокоманду и используйте setlocal
а не просто set
так, чтобы настройка применялась к буферу, содержащему этот тип файла, и не применялась ко всем вашим буферам Vim.
Увидеть
:help 43.1
:help 41.11
редактировать
Я забыл ответить на другую часть вопроса. В Vim есть три типа зависимых от типов файлов плагинов, которые находятся в трех разных подкаталогах ~/.vim: ftplugin, синтаксис и отступ. Подкаталог indent предназначен для плагинов, которые влияют на отступы определенных типов файлов. Подкаталог синтаксиса предназначен для плагинов, которые влияют на окраску синтаксиса. Ftplugin предназначен для плагинов, которые влияют на параметры поведения, такие как ширина текста, сопоставления, сокращения и тому подобное.