Класс, который я принимаю, требует, чтобы код был отправлен с двумя пробелами вместо символов табуляции. У меня есть autocmd в .vimrc
, чтобы использовать две пробельные пробелы только в каталоге, используемом для назначений в этом классе.Переопределить vim autocmd для Make-файлов
autocmd BufNewFile,BufRead ~/path/to/dir/* set tabstop=2 shiftwidth=2 expandtab
Однако, я не хочу Makefiles в каталоге использовать опцию expandtab
, так как делают требует символы табуляции.
Для этого я создал еще один autocmd в .vimrc
:
autocmd FileType make setlocal noexpandtab
Однако, в то время как первый autocmd работает отлично, второй не переопределяет первый и expandtab
по-прежнему будет установлен, даже на Makefiles или файлов типа make. Это происходит независимо от порядка в конфиге.
Один несколько хак-у файлик для работы заключается в использовании
autocmd FileType make autocmd!
который отключает все другие autocmd для файла. Однако это отключит ВСЕ другие файлы autocmd для Makefile, что нежелательно.
Есть ли другой способ дать второй приоритет команды над первым или каким-то образом отключить опцию expandtab
на Makefiles?