如何禁用自动缩进新行?


36

我最近将emacs升级到了24.4.1版,新行的缩进有所改变。当我命中时,enter我希望在出现光标的点处只有“裸露”的换行符,特别是如果我在该行的中间,则应将该行拆分,并且不删除任何字符,包括空格。不幸的是,这种情况并非如此。

这是示例:

a b

当我将光标放在后面a并点击时,enter我得到:

a
b

虽然应该

a
 b

我在Google上搜索了一下,可能是由于自动缩进导致的,如何禁用此功能?我说的是文字或基本模式。


7
对于后代,我要补充一点。可以通过使用M-x view-emacs-news(或C-h n)阅读新闻来解决许多“最近的升级”问题。您可以通过添加前缀arg阅读任何先前版本的新闻。查看新闻并搜索“缩进”后,第一个结果与Drew的答案极为相似。只是有关升级的任何问题的有用提示。
保姆

Answers:


49

禁用electric-indent-mode

(when (fboundp 'electric-indent-mode) (electric-indent-mode -1))

适用于任何Emacs版本。根据您的观点,这种烦恼或闪亮的新功能是Emacs 24.4中的默认设置。

又见在计算器上类似的帖子。

(但是,听起来您好像在说相反的方向,并且您 RET缩进但没有得到该缩进。已发生变化的是,RET(“ Enter”)现在可以自动缩进,并且您需要点击C-j以获得换行符没有缩进。它们交换RETC-j有效。如果您想RET缩进,那么新的默认行为应会为您提供所需的内容。无论如何,模式是electric-indent-mode:根据需要将其打开或关闭。)


1

还有就是要插入一个新行字符的可能性C-q C-j,并有3个命令分割线:open-line C-osplit-line C-M-onewline RET, C-m你使用。如果您按的位置放置光标a,然后按,C-o则当前行将在光标后断开,并且每个字符都在下一行。分割线将保持列的位置,以便在内容之前插入一个额外的空白。

嗯,有趣的是,C-M-o当前行的末尾也有一个额外的空白,以便于b和光标位置在更改后对齐。

在基本模式下,C-j将缓冲区更改为您对我的机器的期望,并且C-j绑定到electric-newline-and-maybe-indent

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.