Ну, в худшем случае, вы настраиваете java-режим с помощью ловушки:
(defun my-java-mode-setup ()
"force c-basic-offset to be 4"
(setq c-basic-offset 4))
(add-hook 'java-mode-hook 'my-java-mode-setup)
Отладка того, почему ваши основные настройки ловушек не остаются, потребует больше информации, чем вы нам сообщили Я делаю то, что вы описываете, и вижу смещение 4 в Java-файлах. Может случиться так, что вы используете встроенный стиль, который устанавливает смещение на 2 после вашей обычной ловушки. См. эту документацию , чтобы узнать, как настроить стили.