У меня была такая же проблема, и кажется, что это ошибка в Emacs (по состоянию на 24.2).Попробуйте это, используя следующее .emacs
:
(setq-default indent-tabs-mode nil)
(add-hook 'after-save-hook 'whitespace-cleanup)
Если вы откроете файл, сохраните его, а затем откроете Makefile, у вас возникнет описанная вами проблема.Но если вы сначала откроете Makefile, сохраните его и , а затем откроете файл другого типа, у вас возникнет противоположная проблема: 8 пробелов будут заменены табуляциями.что indent-tabs-mode
является локальным по отношению к буферу, но в whitespace.el
ему присваивается обычная переменная с именем whitespace-indent-tabs-mode
.Следовательно, первое значение, которое видно, - это значение, которое учитывается.
Вот еще один обходной путь, который решает и некоторые другие проблемы.Добавьте это к вашему .emacs
:
(defadvice whitespace-cleanup (around whitespace-cleanup-indent-tab
activate)
"Fix whitespace-cleanup indent-tabs-mode bug"
(let ((whitespace-indent-tabs-mode indent-tabs-mode)
(whitespace-tab-width tab-width))
ad-do-it))