4

私は Emacs が大好きですが、インデントの仕方が好きではありません。制御不能なタブとスペースの組み合わせか、スペースだけ ( (setq indent-tabs-mode nil)) です。

Emacsにインデントをしてもらいたい:

  1. タブだけで。

  2. 決まった数の場所にインデントを行います (6 ではない場合もあれば、8 である場合もあれば、他の場所で 4 である場合もあります)。

  3. 1 レベルのインデントを 4 つ (または 2 つ) のスペースに等しいように設定できます。

  4. タブストップの値を変更すると、新しく開いたり再ロードしたファイルはすべて新しい値を使用する必要があります (または、この変更は Emacs を再起動することによってのみ影響を受けますか?)

上記のすべてが可能ですか?.emacsまたはパッケージ内のいくつかの設定?

ほとんどの IDE (Eclipse など) は上記を提供します。

4

3 に答える 3

8

スマート タブは、タブとスペースをコンテキストに応じて挿入します。

個人的には、インデントと配置の両方にスペースのみを使用します (少なくとも自分のプロジェクトでは)。これは、このトピックについて非常に役立つことがわかったemacswikiの別の記事です

于 2012-07-09T20:25:13.403 に答える
3

C/C++/Java の場合、同じタブ幅、インデント レベル、および c-basic-offet をモード フックに追加してみてください。

(defun my-c-mode-common-hook ()
  (setq c-indent-level 3
    c-brace-offset -3)
  (setq c-basic-offset 3)
  (setq-default tab-width 3)
  (setq tab-width 3))

(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

これにより、cc モードの場合、タブとインデントが等しくなり、emacs は常にスペースよりもタブを選択します。C のインデントも参照してください。

は他のtab-width場所に設定でき、python のpython-indentのようなインデント長変数と組み合わせて他のモードに適用できます。


編集:

実際には、kindahero のリンクがほぼこれを行っているようです: http://www.emacswiki.org/SmartTabs

于 2012-07-04T08:06:12.467 に答える
3

インデントにはタブを使用します。しかし、他の誰かが別のエディターを使用すると、インデントがなくなっていることがわかりました。したがって、タブを使用してインデントしたコードを選択し、「Mx untabify」を実行できます。これにより、タブが空白に置き換えられるため、最初に述べた問題は、別のエディターを使用しているユーザーには発生しません。

于 2012-10-07T11:56:43.020 に答える