Я пытаюсь установить количество пробелов на отступ для запуска новой функции sh-mode
(подрежим bash). Я попытался установить:
'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)
(как показано custom-set-variables
в .emacs
) и некоторые другие , а также, но ни один из них не имели никакого эффекта!
indentation
shell-mode
bash
Робин Грин
источник
источник
custom-set-variables
(это то, что используется внутри Customize, но не предназначено для использования вручную). Лучше использовать такие вещи, как(setq sh-basic-offset 2)
.Ответы:
sh-basic-offset
Требуется установка требуемого отступа, но я не осознавал, что также необходимо закрыть и снова открыть все файлы сценариев оболочки, прежде чем настройка вступит в силу. Я не могу вспомнить когда-либо делать это раньше в Emacs.источник
.emacs
вы должны либо выйти из emacs и перезапустить его, либо использоватьM-x load-file
для его перезагрузки..emacs
Если вы хотите перезагрузить файл, который вы открыли в редакторе, вы можете сказатьC-x C-v RETURN
«пересмотреть» его.M-x set-variable
если вы хотите просто изменить это для буфера, в котором вы работаете.Я установил basic-offset на 2, но это, похоже, не сработало, я снова нажал
C-h v sh-<TAB>
и понял, чтоsh-indentation
я установил эту переменную на 2, и теперь все, похоже, работает как шарм.источник
sh-basic-offset
вместо этого.У меня был тот же опыт, что и у Albaro: настройка sh-basic-offset не имела никакого эффекта, но настройка sh-indentation работала как положено.
В моем случае я оценивал
(setq sh-basic-offset 2)
с помощью emacs, например. через Mx eval-выражение. Я бегуGNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian
. Мой основной режим - Shell-скрипт.источник