リージョンを長方形として扱い、様々なテキスト操作をするコマンドです。
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
1行目の「d」にマーク、3行目の「p」にカーソル
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz
1行目の「d」にマーク、3行目の「p」にカーソル
と言っても別にリージョン自体が変わる訳ではなく、リージョンを設定した後に実行するコマンドによって、マーク位置からカーソル位置までをどう見るかが変わるということです。
なお、長方形コマンドは「矩形(くけい)コマンド」と言われることもあります。ていうか、そのように呼ばれることの方が多いです。
M-x kill-rectangle
長方形リージョンを削除し、削除バッファに保持します。ただし、この削除バッファは通常のyank
で取り出されるものではなく、yank-rectangle
によって取り出される特別の削除バッファです。また、長方形の保持は一つしかできず、kill-rectangle
を実行すると、それまで削除バッファにあった長方形は消滅します。
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz実行後
abcpqrstuvwxyz abcpqrstuvwxyz abcpqrstuvwxyz abcpqrstuvwxyz
M-x delete-rectangle
長方形リージョンを消去します。削除バッファには保持されません。それ以外はkill-rectangle
と同じです。
M-x yank-rectangle
カーソル位置を長方形の左上の角として、その位置に削除バッファ中の長方形を挿入します。元々あったテキストは右に押しやられます。また、カーソルのある桁よりも前で行が終わっている場合は、その分の半角スペースが挿入されます。
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz
2行目の「e」にカーソル
削除バッファの内容hij hij hij hij実行後
abcdefghijklmnopqrstuvwxyz abcdhijefghijklmnopqrstuvwxyz abcdhijefghijklmnopqrstuvwxyz abcdhijefghijklmnopqrstuvwxyz ____hij
例によってアンダーバーは半角スペースで。
M-x append-rectangle
kill-rectangle
などによって長方形用の削除バッファに送られたテキストを、カーソルのある行(論理行ではなく表示行)以降の末尾に挿入します。
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz
2行目の「c」にカーソル
削除バッファの内容defg defg defg defg実行後
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyzdefg abcdefghijklmnopqrstuvwxyzdefg abcdefghijklmnopqrstuvwxyzdefg defg
M-x yank-rectangle-as-region
kill-rectangle
などによって長方形用の削除バッファに送られたテキストを、改行を取り払って1行とした上で挿入します。
defg defg defg defg実行後
defgdefgdefgdefg
M-x open-rectangle
長方形リージョンを半角スペースに置き換え、そこにあったテキストを右に押しやります。
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz実行後
abc________defghijklmnopqrstuvwxyz abc________defghijklmnopqrstuvwxyz abc________defghijklmnopqrstuvwxyz abc________defghijklmnopqrstuvwxyz
M-x yank-rectangle-selection
実行するとステータスバーでキーの入力が求められます。
F6 | キャンセル |
---|---|
F7 | Append |
F8 | Overwrite |
F9 | Insret |
F10 | Insert as region |
M-x clear-rectangle
長方形リージョンを半角スペースに置き換えます。置き換えられた部分は削除バッファに保持されます。
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz実行後
abc________lmnopqrstuvwxyz abc________lmnopqrstuvwxyz abc________lmnopqrstuvwxyz abc________lmnopqrstuvwxyz
M-x string-rectangle
長方形リージョンの各行を指定した文字列に置き換えます。実行すると、ミニバッファで「String rectangle: 」と入力を求められます。入力してEnterを押すと、入力した文字列に置換されます。
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz置換文字列
String rectangle: test
実行後
abctestlmnopqrstuvwxyz abctestlmnopqrstuvwxyz abctestlmnopqrstuvwxyz abctestlmnopqrstuvwxyz
なお、この長方形を「幅ゼロ」にすると、入力した文字列が各行に挿入されるようになります。
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz
1行目の「a」の前にマーク、4行目の「a」の前にカーソル
置換文字列String rectangle: test
実行後
testabcdefghijklmnopqrstuvwxyz testabcdefghijklmnopqrstuvwxyz testabcdefghijklmnopqrstuvwxyz testabcdefghijklmnopqrstuvwxyz
M-x overwrite-rectangle
カーソル位置を長方形の左上の角として、その位置に削除バッファ中の長方形を挿入します。元々あったテキストは上書きされます。それ以外はyank-rectangleと同じです。
M-x copy-rectangle
長方形リージョンを削除バッファに保持します。リージョン内容には変更ありません。
通常の長方形コマンドは専用の削除バッファを使用しますが、一部のコマンドはレジスタを使うこともできます。
リージョンではなく選択部分(セレクション)を長方形として操作することもできます。ただし、リージョンのように、とりあえずリージョンを設定しておいて後で長方形として操作するというのでなく、最初からS-F6 S-F6によって長方形として範囲指定する必要があります(というか、通常のセレクションではM-xとやった時点で選択が解除されてしまいます)。
ここで扱った長方形は、コマンドによって、削除バッファ・クリップボードのどちらかに保持されます。