新しい行の自動インデントを無効にする方法は?


37

最近、emacsをバージョン24.4.1にアップグレードしましたが、新しい行のインデントで何かが変更されました。ヒットするenterと、カーソルが存在するポイントで「裸の」改行文字だけが期待されます。特に、行の途中にある場合、その行は分割され、スペースを含む文字は削除されません。残念ながら、そうではありません。

以下に例を示します。

a b

直後にカーソルを置いてaヒットするenterと、次のようになります。

a
b

あるべき

a
 b

私は少しグーグルで調べましたが、おそらくこれは自動インデントによるものです。どうすれば無効にできますか?それが重要な場合は、テキストモードまたは基本モードについて説明しています。


7
後世のために、これに追加するコメントがあります。多くの「最近のアップグレード」問題は、M-x view-emacs-news(またはC-h n)でNEWSを読むことで解決できます。接頭辞argを追加することにより、以前のバージョンのニュースを読むことができます。NEWSを表示して「インデント」のisearchを実行すると、最初の結果はDrewの答えに非常に似ています。アップグレードに関連する問題のヒントです。
ナニー

回答:


49

無効にするelectric-indent-mode

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

これは、すべてのEmacsバージョンで機能します。あなたの視点に応じて、この迷惑または光沢のある新機能は、Emacs 24.4でデフォルトとして導入されました。

参照してくださいこの StackOverflowの上で同様のポストを。

(ただし、それはあなたが言っているように聞こえる逆に、あなたがすることを望む RET。インデントにそれインデントを取得されていません何が変わったのはそれがあるRET(「入力」)今インデントを自動的に、あなたがヒットする必要があるC-jとだけ改行を取得します。無インデント彼らはスワップRETC-j。実際には、あなたがしたい場合RET。インデントに、新しいデフォルトの動作が何をしたいあなたを与える必要がありますどのような場合には、モードがあるelectric-indent-mode:あなたのようなとして、オンまたはオフにそれを回します)。


1

改行文字を挿入する可能性がありますC-q C-jし、行を分割する3つのコマンドがありますopen-line C-osplit-line C-M-oそしてnewline RET, C-mあなたが使用していました。あなたが言ったようにカーソルを置き、a押すと、カーソルの後にC-o現在の行が壊れ、すべての文字が次の行になります。split-lineは、列の位置を保持して、コンテンツの前に余分な空白が挿入されるようにします。

おもしろいことにC-M-o、現在の行では最後に余分な空白が追加されるためb、変更後にカーソルとカーソルの位置が揃います。

基本モードC-jでは、マシン上の期待に合わせてバッファーが変更C-jされ、electric-newline-and-maybe-indent

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.