2011-07-13 17 views
10

私はvimを使っているPythonプログラマーたちと仕事をしており、インデント用にTABを使ってPythonを作っています。私はPythonモードでEmacsを使用して、タブキーを4つのスペースに変換します。私は問題を起こしたくないので、実際のTABSを使ってインデントをスペースに変換するのではなく、.emacsファイル(または何でも)に追加したいと思っています。どうやって?Emacsを作る方法Pythonモードでインデント用のTABを生成しますか?

これが他の回答者の場合は申し訳ありません。私はそれを見つけられませんでした。

+4

地獄の特別なサークルがあり、心配しないでくださいこの種の個人にとっても。 – Evpok

+0

これらの人と一緒に仕事をやめてください! ;-)) –

+1

「タブ」は頭文字でしたか? – BoltClock

答えて

10

あなたはpython-mode-hookであなたの~/.emacsでのPython固有の設定を定義することができます。インデントにタブを使用するためには、あなたが使用できます。

(add-hook 'python-mode-hook 
    (lambda() (setq indent-tabs-mode t))) 

python.elインデントのみ4列以来インデントが他のインデント用のスペースに続いて8とタブの倍数であるとき、デフォルトでは、上記のタブを使用します。 。

インデントレベルごとに1つのタブを使用する必要がある場合は、python-indentを8に設定する必要があります。次に、tab-widthをタブとして表示する幅に設定できます。ポストへのコメンターとして

(add-hook 'python-mode-hook 
    (lambda() 
    (setq indent-tabs-mode t) 
    (setq python-indent 8) 
    (setq tab-width 4))) 
+0

これをいろいろなところに置こうとしましたが、動作させることはできません。私のemacsのインストールは、私がハッキングについて考えた "python.el.gz"を使っているようです。代わりに私はpython-mode.elを取得する必要がありますか? –

+0

@Aaron:あなたはおそらくそれを動作させましたが、Python以降です。elは、デフォルトではまだタブの使用を見ていないレベルごとに4列だけインデントします。私はいくつかの説明で答えを更新しました。 – jamessan

1

は、おそらくのpythonモードでこれを実行する必要があります。

(setq indent-tabs-mode t) 
0

正しくインデントにタブを使用することが悪い考えで、非標準のタブ幅を使用することがさらに悪くなる、と述べました。それでも、コラボレーションしたい場合は、選択肢がありません。

は、あなたの同僚は、Vimが設定されている正確にどのように応じて、indent-tabs-modeに両方ターンを必要とするかもしれないし、その意志はない台無しにあなたの他の仕事を、4

これを行うための便利な方法にtab-widthを設定しましたfile local variablesを使用します。各問題のあるファイルの終わりに、これを置く:

# Local Variables: 
# indent-tabs-mode: 1 
# tab-width: 4 
# End: 

(あなたがindent-tabs-modeが安全なローカル変数であることをEmacsに指示する必要があります。)

+1

個人的には、ファイルローカル変数を嫌い、特に共同作業をしている場合は嫌です。それぞれのユーザーが異なるエディタを使用している場合のファイルの外観を想像してください。また、個人エディタ用にさまざまな宣伝文句を含めることもできます。ブリーチ。 – jtahlborn

+0

ただし、書式設定はファイルに配置するのが適切です!あなたはスタイルを壊すために投票しますか? – gavenkoa

関連する問題