Точка с запятой Emacs нажимает отступ до ширины всей предыдущей строки, объявляя переменные частного класса. Как исправить и остановить? (c-электрический-полу и запятая?)
В моем.cpp файле все обычно имеет отступ, пока я не нажму точку с запятой ; в следующих строках --- в этот момент emacs делает отступ до полной длины последней введенной строки...
Как ни странно, этого не происходит, если я удалю модификатор доступа и объявлю vars int x и int y для любого класса или структуры.
class Blah {
private int x;
private int y;
private int z;
};
Если я выделю все поле и нажму
Дополнительные детали:
Ch k; дает это описание, поэтому, возможно, это связано с этой функцией - хотя я не понимаю, потому что описанный отступ, похоже, относится к ближайшей следующей новой строке, а не к текущему, на котором находится курсор.
; runs the command c-electric-semi&comma (found in c++-mode-map),
which is an interactive compiled Lisp function in ‘cc-cmds.el’.
It is bound to ,, ;.
(c-electric-semi&comma ARG)
Insert a comma or semicolon.
If ‘c-electric-flag’ is non-nil, point isn’t inside a literal and a
numeric ARG hasn’t been supplied, the command performs several electric
actions:
(a) When the auto-newline feature is turned on (indicated by "/la" on
the mode line) a newline might be inserted. See the variable
‘c-hanging-semi&comma-criteria’ for how newline insertion is determined.
(b) Any auto-newlines are indented. The original line is also
reindented unless ‘c-syntactic-indentation’ is nil.
(c) If auto-newline is turned on, a comma following a brace list or a
semicolon following a defun might be cleaned up, depending on the
settings of ‘c-cleanup-list’.
1 ответ
;
- один из многих ключей, запускающих команду "исправить отступ этой строки". В этом нет ничего особенного;
здесь просто Emacs обычно сохраняет ваш отступ в соответствии со стилем, определенным для файла.
Как говорится в комментарии 0x5453, ваш файл C++ синтаксически недействителен, и индексатор изо всех сил пытается придумать разумный отступ для этого неправильного файла. Если вы исправите код, чтобы он был законным, отступы также будут устранены.