2

Python でコードを書いていて、既に書いたコードの前に突然新しいブロックを追加したくなる...完全なコードのインデントが影響を受ける...

各行に移動してインデントを変更するのは非常に面倒なプロセスです...自動インデントなどを行う方法はありますか?

例えば:

def somefunction:
     x =5
     return x

コントロールブロックを追加したい場合

例えば:

def somefunction:
     if True:
         x =5
         return x
     return 0

コントロールブロックを追加するというこの小さな変更には、多くのタブ作業が必要でした...

これを簡単に行うためのショートカットまたは何かはありますか?

4

12 に答える 12

5

誰もがどこの変な惑星から来ているのかはわかりませんが、石器時代にさかのぼらないほとんどのエディターでは、通常、コード ブロックをインデントするには、テキスト ブロックを選択して Tab キーを押すだけで済みます。反対に、Shift+Tab は通常、ブロックのへこみを元に戻します。

これは、Visual Studio、Notepad2、e、Textmate、Slickedit、#Develop などに当てはまります。

大規模なマルチファイル プロジェクトを行っていない場合は、Notepad2を強くお勧めします。コード中心の機能 (行番号、インデント ガイド、コードの強調表示など) を備えた、非常に軽量で無料の使いやすいメモ帳の代替品です。

于 2009-05-16T00:18:29.010 に答える
3

Idle エディターでは、インデントしたい行を選択して Tab キーを押すだけです。

これは実際にはソースにタブを挿入するのではなく、スペースだけを挿入することに注意してください。

于 2009-05-15T17:43:58.803 に答える
2

IDLEでは、コードのブロックでctrl+]とctrl+[を使用します。

于 2009-05-15T17:46:27.750 に答える
2

emacs には Python モードがあります。そのモードでは、強調表示して次のことを行います。

ctrl-c >
ctrl-c <
于 2009-05-15T23:10:04.667 に答える
1

Vim:ビジュアルモードに切り替え、ブロックを選択し、>を使用してインデントします(または<を使用してインデントを解除します)。

参照:viで複数の行をすばやくインデントする

于 2009-05-15T23:35:32.623 に答える
1

VIを使用し、同じものを二度とプログラムしないでください。:^)

于 2009-05-15T17:49:46.357 に答える
1

[面白い ;-)] この新しいキーボード モデルの Pythonic キーボードがあれば、必要な開発者が 1 人少なくて済むと言いました http://img22.imageshack.us/img22/7318/pythonkeyboard.jpg

于 2009-05-15T22:53:41.367 に答える
1

vim を使用している場合は、これ専用のプラグインがあります: Python_fn.vim

便利な python 関数 (および同等のメニュー) を提供します。

]t      -- Jump to beginning of block
]e      -- Jump to end of block
]v      -- Select (Visual Line Mode) block
]<      -- Shift block to left
]>      -- Shift block to right
]#      -- Comment selection
]u      -- Uncomment selection
]c      -- Select current/previous class
]d      -- Select current/previous function
]<up>   -- Jump to previous line with the same/lower indentation
]<down> -- Jump to next line with the same/lower indentation
于 2009-05-15T23:46:59.303 に答える
0

TextMateで、インデントして使用する行を強調表示するだけです。


⌘+[
または
⌘+]

テキストを適切な方向に移動します。

于 2009-05-15T17:50:59.177 に答える
0

Komodo では、Tab と Shift Tab の両方が期待どおりに機能し、大きなコード ブロックをインデントおよびインデント解除します。

于 2009-05-16T01:52:52.717 に答える
0

vim では、次のように入力できます。

>>

行をインデントします。入力した場合:

5>>

カーソル位置とその下の 5 行をインデントします。 5<<逆を行います。

于 2009-05-16T02:54:09.730 に答える
0

http://pydev.sourceforge.net/にある PyDev には、「コード フォーマッタ」があります。また、自動インデント機能も備えています。Macでも無料で利用できるEclipse用のプラグインです。

もう 1 つのオプションはhttp://code.google.com/p/macvim/です。Vim に精通しているか、時間を費やしている場合は、Python だけでなく多くの自動インデント機能があります。

ただし、Python では、C 系言語とは異なり、インデントによってプログラムの意味が変わることを忘れないでください。たとえば、C や C# の場合、ユーティリティ プログラムは "{" および "}" 記号に従ってコードを美しくすることができます。しかし、Python では、プログラムは以下をフォーマットできないため、あいまいです。

#Say we wrote the following and expect it to be formatted.
a = 1
for i in range(5):
print i
a = a + i
print a

あなたはそれを期待していますか

a = 1
for i in range(5):
    print i
a = a + i
print a #Will print 5

また

a = 1
for i in range(5):
    print i
    a = a + i
print a #Will print 11

これは 2 つの異なるスニペットです。

于 2009-05-15T21:15:21.913 に答える