2017-01-12 35 views
0

私はemacsでタブを使用したくないので、タブキーを押すとファイルの種類に基づいて設定された数のスペースが挿入されるように設定したいと思います。たとえば、私は、Pythonファイルで作業するときに4つのスペースを挿入するためにタブを押したいと思います。ここでは、私の現在の.emacsが現在 タブの作成方法Emacsに設定された数の空白を挿入する

(setq-default indent-tabs-mode nil) 
(setq tab-width 4) 
(setq tab-stop-list (number-sequence 4 200 4)) 

ファイルである私は、タブを押したときに、それはEmacsが適切なスポットをと考えるものであれば、それだけで任意のスペースを追加します。たとえば、私がPythonファイルを開いてタブを押した場合、何も起こりません。しかし、「if:」と入力して次の行のタブを押すと、4つのスペースが追加されます。しかし、もう一度タブを押すと、行頭に戻ります。私はちょうど私がそれを作るようにしたいと思います。なぜなら、誰かが私にラインを介してタブサイクルを持たせることが有益な理由を伝えることができない限り、それは単純なスペースと単純なスペースを追加するからです。

主な理由は、4つのスペースのセットに基づいてインデントの使用を含む特定のフォーマットに従ったコメントを行うプロジェクトに取り組んでいるからです。たとえば は:

r""" 
    Return the value of the q-gamma function. 

    .. MATH:: 

     qgamma(z,q) = \Gamma_q (z). 
    """ 

ので、「qgamma」とのラインのために、私は8つのスペースでそれを開始する必要があり、私は二回、タブを押していることをODできるようにしたいと思います。しかし、emacsはこれが2回タブすることができる適切な場所だとは思わないので、タブを2回押すたびに私は行頭に戻ります。

ありがとうございます!

編集:メジャーモード変数をチェックすると、pythonモードであることが示されます。

+0

Pythonファイルの編集に使用するメジャーモードを追加することができます。 –

答えて

0

M-x customizeの場合は、py-tab-indentを検索し、それをオフに切り替えてApplyとします。私はそれがあなたが探している行動だと信じています。それをテストし、もしそうなら、Apply and Saveのカスタマイズ。

@jpkottaが指摘したように、上記はpython-mode.elであり、組み込みのpython.elではないことに注意してください。

+0

これは 'python-mode.el'のためのもので、' python.el'のビルドと同じではありません。 – jpkotta

+0

申し訳ありませんが、彼はpython-modeについて言及しました。私は彼がpythonモードのパッケージを指していたと思っていました。 –

+0

まだ曖昧です。メジャーモードは両方とも 'python-mode 'です。私はあなたの答えが何とか悪いことを指摘していなかった、ちょうどあなたが参照しているPythonモードをメモする必要があります。 – jpkotta

0

あなたはpython.elで構築を使用している場合は、indent-relative代わりのpython-mode-hookpython-indent-line-functionindent-line-functionを設定することができます。

(defun jpk/python-mode-hook() 
    (setq indent-line-function #'indent-relative)) 
(add-hook 'python-mode-hook #'jpk/python-mode-hook) 

各メジャーモードは、独自のインデント機能を持っている、indent-line-function変数によって指されます。 indent-relativeは非常に基本的な一般的な字下げ関数で、fundamental-mode(最も基本的なメジャーモード)で使用されます。それは2つの広く使用される主要なモードがあり、その中で


Pythonはpython.elに建てられ、サードパーティpython-mode.el、Emacsで少し奇妙です。あなたが好きなものを使ってください。しかし、あなたが使っているものと、記事やSOの回答で誰が参照しているのかを意識してください。

関連する問題