1. ホーム
  2. python

[解決済み] Python用Emacsバルクインデントツール

2022-06-03 21:51:04

質問

EmacsでPythonを使用していて、コードのブロックにtry/exceptを追加したい場合、しばしばブロック全体を一行ずつインデントしなければならないことに気づきます。 Emacsでは、どのようにしてブロック全体を一度にインデントするのでしょうか。

私は経験豊富なEmacsユーザーではありませんが、sshで作業するには最適なツールであると思います。 私はコマンドライン (Ubuntu) で Emacs を使用しており、gui としては使用していません。

どのように解決するのですか?

Emacsを使ってPythonのプログラミングをしているのであれば、おそらくpython-modeを使うはずです。python-modeでは、コードのブロックをマークした後。

C-c > または C-c C-l はリージョンを右に4スペースシフトします。

C-c < または C-c C-r はリージョンを左に4スペースシフトします。

もし、コードを2段階のインデント、あるいは任意の量だけシフトさせる必要がある場合は、コマンドの前に引数を指定することができます。

C-u 8 C-c > は領域を右に8スペースシフトします

C-u 8 C-c < は、領域を 8 スペース左にシフトします。

もう一つの方法は M-x indent-rigidly にバインドされている C-x TAB :

C-u 8 C-x TAB 領域を 8 スペース右にシフトする

C-u -8 C-x TAB は、領域を 8 スペース左にシフトします。

また、便利なのが 矩形コマンド で、これはテキストの行の代わりにテキストの矩形に対して操作します。

例えば、矩形の領域をマークした後に

C-x r o は矩形領域を埋めるために空白を挿入します(効果的にコードを右へシフトします)。

C-x r k 矩形領域を削除します (事実上、コードを左にシフトします)

C-x r t は矩形を置き換えるための文字列を要求します。 入力する C-u 8 <space> と入力すると、8つのスペースが入力されます。

PS. Ubuntu では、すべての .py ファイルに対して python-mode をデフォルトモードにするために、単に python-mode パッケージをインストールするだけです。