本文へ移動
Vast Cowのブログ
前のページへ戻る

Emacsで選択範囲のインデントを手動調整する方法:indent-rigidlyの使い方

この記事を編集

Emacsでコードやテキストを編集していると、複数行のインデントをまとめて右や左にずらしたいことがあります。

そんなときに便利なのが、Emacs標準の indent-rigidly コマンドです。

この記事では、選択範囲のインデントを手動で調整する方法と、調整後に操作を終了する方法を紹介します。

1. indent-rigidlyとは?

indent-rigidly は、選択した範囲(region)のインデントをまとめて変更するコマンドです。

通常の indent-region がプログラミング言語の構文に従ってインデントを自動調整するのに対し、indent-rigidly は各行の相対的なインデントを保ちながら、手動で左右に移動できます。

例えば、次のコードがあるとします。

if condition:
    print("Hello")
    print("World")

この3行をまとめて右に4文字ずらすと、次のようになります。

    if condition:
        print("Hello")
        print("World")

各行のインデントの相対関係が維持されるのが特徴です。

2. 選択範囲のインデントを手動調整する

操作手順は次のとおりです。

  1. C-SPC で範囲選択を開始する
  2. カーソルを移動して対象の行を選択する
  3. C-x TAB で indent-rigidly を実行する
  4. 左右の矢印キーでインデントを調整する

indent-rigidly の実行後は、次のキーで調整できます。

キー動作
→右に1文字分移動
←左に1文字分移動
S-→右に tab-width 分移動
S-←左に tab-width 分移動

S-→ と S-← は、Shiftキーを押しながら左右の矢印キーを押す操作です。

※ 矢印キーによる対話的な調整は、Emacsのバージョンや設定によって動作が異なる場合があります。

3. インデント調整を終了するには?

C-x TAB を実行して対話的にインデントを調整した後は、RET(Enterキー) を押すと調整を確定して終了できます。

基本的な流れは次のとおりです。

C-SPC      範囲選択を開始
カーソル移動  範囲を選択
C-x TAB    indent-rigidly を実行
→ → →      右に3文字分移動
RET        調整を確定して終了

操作を中断したい場合は C-g を使用します。

ただし、C-g を押しても、それまでに変更したインデントが自動的に元に戻るとは限りません。

変更を取り消したい場合は、必要に応じて undo(通常は C-/)を使用します。

4. 指定した文字数だけインデントを変更する

対話的な調整だけでなく、数値を指定して一度にインデントを変更することもできます。

右に4文字ずらす場合

C-u 4 C-x TAB

左に4文字ずらす場合

C-u - 4 C-x TAB

こちらは変更したい文字数が決まっているときに便利です。

5. indent-regionとの違い

Emacsには、インデントを調整するための別のコマンドとして indent-region もあります。

コマンドキーバインド用途
indent-rigidlyC-x TAB選択範囲を手動で左右にずらす
indent-regionC-M-\構文ルールに従って自動整形する

例えば、PythonやCなどのコードを構文に従って整形したい場合は indent-region が適しています。

一方、コードの構造を変えずに、複数行をまとめて右や左に移動させたい場合は indent-rigidly が便利です。

まとめ

Emacsで選択範囲のインデントを手動調整するには、indent-rigidly を使用します。

覚えておきたい操作は以下のとおりです。

操作キー
範囲選択を開始C-SPC
手動インデント調整C-x TAB
右に移動→
左に移動←
調整を確定して終了RET
操作を中断C-g
右に4文字移動C-u 4 C-x TAB
左に4文字移動C-u - 4 C-x TAB

特に覚えておきたいのは、C-x TAB で調整を開始し、RET で終了するという操作です。

複数行のインデントを手動で微調整したいときに役立ちます。


この記事を編集
この記事を共有:

コメント


前の記事
Tampermonkeyで特定のWebサイトをダークモード化する方法【OS設定に自動連動】
次の記事
pipを使わずにwhlをダウンロードして展開する