Emacs でテキストの行を移動するにはどうすればいいですか?

Emacs でテキストの行を移動するにはどうすればいいですか?

次のような行のセットがあります:

This is a row.
This is row 2.
This is row 3.

xこのようにスペース/タブの数を超えてシフトしたいです。

    This is a row.
    This is row 2.
    This is row 3.

これらの行を選択して何らかの操作を行う方法はありますかM-x region-tab-n?

答え1

`CxTAB'

領域内の各行を固定距離だけ右または左にシフトします (`indent-rigidly')。移動する距離は数値引数によって決まります (正の値を指定すると右に移動し、負の値を指定すると左に移動します)。

答え2

各行の前にいくつのスペースを入れたいかわかっている場合: テキストを領域として選択し、 を適用します。M-n C-M-\ここで、nはインデントするスペースの数です。 は、M-nコマンド への数値引数ですC-M-\。 コマンドを単独で使用すると、C-M-\領域内のすべての行が左に移動します (スペースはゼロ)。

スペースで右にシフトするにはn:M-n C-x TAB

スペースで左にシフトするにはn:M-- M-n C-x TAB

答え3

別の方法としては、最初の行の先頭にマーク ( C-SPC) を付け、ポイントを最後の行の先頭に移動して、C-x r tfor を押しますstring-rectangle。各行に挿入する文字列を尋ねられるので、そこに必要な数のスペースを入力します。

(ポイントとマークが同じ列にない場合は、四角形内のテキストがポイントとマークの角に置き換えられます。)

関連情報