Без дополнительной информации, я полагаю, я понимаю, что проблема в том, что для evil-shift-width
необходимо установить значение 4 в python-mode
и 2 в ruby-mode
(для двух примеров), но оно всегда равно 2.
Проблема в этом случае возникает из-за того, что indent
не определен глобально в Emacs и, конечно, не в python-mode
.В python-mode
есть переменная python-indent
, которая установлена в 4, и это переменная для использования.
Хотя раздражает необходимость использования пользовательских переменных для каждого из основных режимов, это то, что каждыйиз режимов, которые фактически используются, и это, вероятно, решение, которое действительно будет работать:
(add-hook 'python-mode-hook
(function (lambda ()
(setq evil-shift-width python-indent))))
(add-hook 'ruby-mode-hook
(function (lambda ()
(setq evil-shift-width ruby-indent-level))))
Добавление нового для каждого основного режима, который вы хотите поддерживать.