Emacs 分号按缩进到整个前一行的宽度,声明私有 class 变量。如何修复和停止? (c-electric-semi&comma?)
Emacs semicolon presses indent to width of entire previous line, declaring private class variables. How to fix & stop? (c-electric-semi&comma?)
我的 .cpp 文件中的所有内容都正常缩进,直到我在以下行中按下分号 ; --- 此时 emacs 一直缩进到完整最后输入的行的长度...
如果我删除访问修饰符并为任何 class 或结构声明 vars int x 和 int y,这奇怪地不会发生..
class Blah {
private int x;
private int y;
private int z;
};
如果我突出显示整个字段并按 < TAB >,Emacs 会将其视为该区域的正确缩进。除了 indent customization
上的其他问题外,似乎找不到与此相关的任何其他内容
其他详细信息:
C-h 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’.
;
是触发 "correct this line's indentation" 命令的众多键之一。这里 ;
没有什么特别之处,只是 Emacs 通常会根据为文件定义的样式保持正确的缩进。
正如 0x5453 在评论中所说,您的 C++ 文件在句法上是无效的,压头正在尽力为这个不正确的文件提供合理的缩进。如果您将代码修复为合法,缩进也将得到解决。
我的 .cpp 文件中的所有内容都正常缩进,直到我在以下行中按下分号 ; --- 此时 emacs 一直缩进到完整最后输入的行的长度...
如果我删除访问修饰符并为任何 class 或结构声明 vars int x 和 int y,这奇怪地不会发生..
class Blah {
private int x;
private int y;
private int z;
};
如果我突出显示整个字段并按 < TAB >,Emacs 会将其视为该区域的正确缩进。除了 indent customization
上的其他问题外,似乎找不到与此相关的任何其他内容其他详细信息:
C-h 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’.
;
是触发 "correct this line's indentation" 命令的众多键之一。这里 ;
没有什么特别之处,只是 Emacs 通常会根据为文件定义的样式保持正确的缩进。
正如 0x5453 在评论中所说,您的 C++ 文件在句法上是无效的,压头正在尽力为这个不正确的文件提供合理的缩进。如果您将代码修复为合法,缩进也将得到解决。