2013-11-02 3 views
11

をタブを使用することはできません、私は、次のメッセージが表示されます:は、Python 3.4でタブを使用してPythonシェルで

Display all 184 possibilites? (y or n) 

は、Python 3.4でタブ移動できるようにする方法はありますか?

+0

あなたは、タブの完全な、(通常は)非常に便利ですの使用を見ています。 'import sys;を実行してみてください。 sys.'タブを押すと、 'sys 'の下にあるオートコンプリートオプションがすべて表示されます。あなたはインデントのためにタブの代わりにスペースを使用することができます(そしてIMOはすべきです)。 –

+2

@JoshSmeaton端末でスクリプトを作成している場合、タブを使用する方がスペースを使用するよりもはるかに高速です(信頼性も高くなります)。私は、クラス内のメソッド内のifステートメントのために12のスペースを数えたくないです。 –

+0

新しい推奨事項は使用スペースですが、1つのスペースではブロックが十分に分離されず、4つのスペースで入力するのが面倒です。 –

答えて

12

これはPython 3.4の開発版で導入された変更点です。多少議論の余地があった。あなたの意見はon the issueです。

11

タブではなく、スペースを使用できます。インタラクティブなインタプリタでは、4つのスペースを入力する必要はありません。ここでは、キーストロークの数を最小限に抑えるために2つのスペースを使用しています。

if 1 == 1: 
    print('Hello Kitty') 
    print('Oh no, only two spaces for a new block') 

tab: completeを無効にするには、次の操作を行います。

ファイルで.pythonrc
と呼ばれる自分のホームディレクトリにファイルを作成または編集スタートを次の行を追加し、

import readline 
readline.parse_and_bind("set disable-completion on") 
readline.parse_and_bind("tab: self-insert") 

編集し~/.bashrcファイルを保存し、

export PYTHONSTARTUP=$HOME/.pythonrc 

次の行を追加しますpython3インタープリタ。 Tabはこれまでと同じように動作するはずです。

また、完全キーをタブの代わりに別のキーにバインドすることもできます。これにより、両方の世界で最も優れたものが得られます。

+0

完璧に作業しました。私のタブインデントを手に入れました! – kurzweil4

0

どのように私は窓でそれを行うのですか?これは首に大きな痛みです。

は実際には、簡単な解決策は、優れた無料のAutoHotkeyをキーボードプログラマーを取得し、.ahkファイルでこれを置くことだった; ')

タブ:: 送信{スペース} {スペース} {スペース} {スペース}

(送信の事実を示していないお使いのエディタ***二行目にあります。)

+0

Windowsでは何が確実に行われますか? –

1

アカウント全体の環境変数を設定しなくても、この動作を編集するには、行うことができます~/.local/lib/python3.4/site-packages/usercustomize.pyの初期化。 @HaleemurAliが書いたように、タブ補完を無効にするためのコードは次のとおりです。

import readline 
readline.parse_and_bind("set disable-completion on") 
readline.parse_and_bind("tab: self-insert") 
1

これは、3.4と3.5の最新バージョン、および予見可能な将来のために、おそらくすべての将来のバージョンでは(元に戻す)に固定されなければなりません。

http://bugs.python.org/issue23441#msg247482

関連する問題