0

私の質問のタイトルは、emacs の正常なタブへの参照です。

基本的に私が望むのは、タブとインデントをグローバルに設定して、統一された方法で機能させることです。emacs は TextMate や BBEdit よりもはるかに優れているように感じますが、インデントを処理する方法はシンプルで、私の目的には最適です。emacs で、使用するマイナー モードで強制されるスキームとは異なるタブ/スペース スキームを使用すると、問題が発生します。

Enter キーを押すと、タブを使用して適切な場所にインデントされた次の行に移動したいと思います。ケーキを持って食べられるなら、ファイルの残りの部分がそのように構成されている場合は、スペースを使用してインデントしたいと思います。

私もこれらを試しました:
emacsでタブを実行すると、emacs
にタブが強制的に使用されます

これを達成するのを手伝ってくれる人に感謝します。

-マイク

4

4 に答える 4

4

おそらく(global-set-key (kbd "RET") 'newline-and-indent)あなたが欲しいものですか?(または、それが利用可能な場合、またはEnter キーの代わりにreindent-then-newline-and-indentヒットすることもできます。)C-j

于 2009-06-09T02:01:11.747 に答える
2

あなたの質問のこの部分について:

ケーキを持って食べることができれば、ファイルの残りの部分がそのように構成されている場合は、スペースを使用してインデントしたいと思います。

これはあなたが望むことをしますか?

(defun dtrt-indent ()
  (setq indent-tabs-mode  
        (save-excursion
          (goto-char (point-min))
          (search-forward "\t" nil t))))
(add-hook 'text-mode-hook #'dtrt-indent)
(add-hook 'c-mode-hook #'dtrt-indent)
; etc for all modes you care about

したがって、バッファのどこかにタブがある場合は、タブを使用してインデントします。タブがない場合は、スペースを使用してインデントします。

于 2009-06-09T05:50:29.223 に答える
0

最良の戦略は、好きなようにインデントするように選択したプログラミング モードを納得させることです。これは一般的に非常に簡単です。私はインデントにうるさいのですが、私の emacs は常に正しいことを自動的に行います。(つまり、「インデント領域」も常に私が望むことを実行します。これは非常に便利です。)

于 2009-06-09T12:44:07.703 に答える
0

説明どおりにセットアップを行う場合:

(setq indent-tabs-mode t)
(setq-default indent-tabs-mode t)
(setq tab-width 4) ;; 8 is way too many
(setq default-tab-width 4) ;; 8 is way too many
(global-set-key (kbd "RET") 'newline-and-indent)

Thing は emacs に、 TABSindent-tabs-modeと SPACES を使用して目的のインデント (個別のモードで定義) を作成することでインデントを作成するように指示します。つまり、TABS/SPACES の代わりに TAB を挿入したい場合は、モードをtab-widthインデントとして使用するように設定する必要があります。

たとえば、インデント値として 4 を使用するインデント スタイル ( で選択c-mode)を使用して選択すると、スペースが挿入されます。cc-modeC-c .newline-and-indent

結論として:

  1. モードがtab-widthas indentを使用していることを確認してください
  2. モードが上書きされていないことを確認してくださいindent-tabs-modepython-modeこれを行うようです)

私は個人的にTABSが好きではありませんが、あなたの旅に幸運を祈ります:)

于 2009-06-09T08:20:07.393 に答える