Невозможно отключить emacs, автоматически изменяющий отступ строк
Я хотел бы выключить electric-indent-mode
для всех основных режимов в Emacs из моего .emacs
файл.
Я пытался добавить их в свой .emacs
файл (каждый отдельно):
(electric-indent-mode -1)
(add-hook 'after-change-major-mode-hook (lambda() (electric-indent-mode -1)))
(when (fboundp 'electric-indent-mode) (electric-indent-mode -1))
(add-hook 'c-mode-common-hook
(lambda ()
(add-hook 'electric-indent-functions
(lambda () 'no-indent) nil 'local)))
Никто не работал на моем простом .cpp
тестовый файл.
Чтобы быть немного более понятным, вот что происходит:
Это:
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
становится:
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
Линия с std::cout << ...
перестраивается, чтобы иметь 2 пробела, когда я нажимаю либо второй :
или ;
Я хочу иметь возможность контролировать способ отступа моих файлов, вводя символы самостоятельно, а не изменяя их в emacs. Я считаю, что это с отключением electric-indent-mode
(отсюда и мои попытки отключить), но может быть и другой способ.
Я использую emacs 24.3.1 (x86_64-redhat-linux-gnu, GTK+ версия 3.10.9)
1 ответ
Я думаю, что вы лаете не на то дерево. В моем Emacs (который по общему признанию является более старой версией) двоеточие связано с c-electric-colon
в режиме C++. Это ведет себя "электрически" независимо от electric-indent-mode
, Прочитайте его документацию; Кажется, есть переменная c-electric-flag
который вы можете установить nil
отключить это поведение.
Если ничего не помогает, и вы хотите сохранить другие функции режима C++, связывание клавиш, которые вы не хотите вести "электрически" в этом режиме, кажется, путь для этого.