私はemacsに不慣れで、そのインデントが私を壁に押し上げています。それ自体は賢すぎます。ソースをどのようにフォーマットしたいかを知っていると(誤って)思い込んでいますが、コードを記述しているさまざまな言語のすべてのモードのすべての設定を追跡する時間がありません。これらの言語の多くでは、モードがまったく有効になっていません。
これが私が望む動作です:
- TAB はインデントを挿入します
- RET は新しい行を挿入し、空白文字を前の行の先頭から最初の非空白文字または行末のいずれか早い方にコピーします。
- 行頭と最初の非空白文字/行末の間の空白テキストの DEL (バックスペース キー) は、可能であれば1 つのインデントを削除し、それ以外の場合は通常のように 1 文字を削除します
- { の自動インデントなし
- } の自動インデント解除なし
- 実際、いつでも賢いインデント動作はどこにもありません。前の行のインデントを RET にコピーするだけです。
- ソース ファイル形式ごとに構成する 2 つの変数: display tab widthと content of indent。できれば、メジャーモードを書くことが .emacs で 2 つの からなるワンライナーでない限り、メジャーモードを書く必要なくランダムなソースコードフォーマット用に設定できることが望ましいです
setq
。
これにより、すべての言語で論理的で一貫した動作が得られます。コードをフォーマットする作業は私に任されますが、それで問題ありません。私は 20 年間そうしてきましたし、それを効率的にする他のマクロの作成方法も知っています。さらに重要なことは、自動動作を自分の好みに合わせようとして構成設定を際限なくいじる必要がなくなることです。また、マクロは一貫した動作に依存しているため、すべてのモードで正しく動作します。
上記は可能ですか?きっと他の誰かが以前にこれをやったことがありますか?そうするマイナーモードはありますか?