質問
emacs の Rectangle 関数が非常に便利であるということをいくつかの場所で読みました。それらについて少し読んだのですが、その理由がまったく分かりません。つまり、段落を削除したいときは、最初の行/列をマークし、次に最後の行/列をマークします。これは実際には長方形ですよね?ただし、通常のキルはまだ使用できます...
それで、あなたはそれらを使ってどのような変化をしますか?
解決
テキスト ファイルの列にデータがある場合、 M-x delete-rectangle
または M-x kill-rectangle
単一列のデータを削除できます。同様に、 M-x yank-rectangle
テキスト列に貼り付けられます。
たとえば、次のテキストを考えてみましょう。
1. alligator alphorn
2. baboon bugle
3. crocodile cornet
4. dog didgeridoo
5. elephant euphonium
6. fish flugelhorn
7. gopher guitar
ワニのaからギターのgまでお選びください。選択範囲の始まりと終わりは、長方形の対向する 2 つの角をマークします。入力 M-x kill-rectangle
するとすぐに次のものが得られます。
1. alphorn
2. bugle
3. cornet
4. didgeridoo
5. euphonium
6. flugelhorn
7. guitar
次に上の行の最後にマークを置き、必要に応じていくつかのスペースを追加して入力します M-x yank-rectangle
そしてタダ!列の順序を変更しました。
1. alphorn alligator
2. bugle baboon
3. cornet crocodile
4. didgeridoo dog
5. euphonium elephant
6. flugelhorn fish
7. guitar gopher
他のヒント
私は 2 つの主な目的で四角形を使用するのが好きです。すべての行に同じテキストを挿入するか、テキストの列を削除します (Dave Webb の答えと同様)。
これらには 2 つの便利なショートカットがあります。 C-x r k
長方形を削除します、そして C-x r t
挿入する (他の四角形コマンドもあります) C-x r
プレフィックスが付いていますが、これらは私が使用しているものです)。
そこで、スタック オーバーフローの投稿に投稿できるように、コードを取得してフォーマットしたいとします。先頭にスペースを 4 つ付ける必要があります。したがって、最初の行の先頭に移動して、 C-SPC
マークを付けてから、最後の行の先頭に移動し、 C-x r t <SPC> <SPC> <SPC> <SPC> <RET>
, 、それでできました!その後、それをコピーして Stack Overflow に貼り付けるだけです。これが役立つ、より複雑な状況に遭遇したことがあります。実際に、特定の場所の各行に挿入したいテキストがある場合です。
したがって、Dave Webb のような他の状況では、長方形を削除したい場合は、次のようにします。 C-x r k
ただし、そのほうがはるかに速いためです ;-)
また、私によると、 リファレンスカード 最初に開始したときに印刷したものを使用すると、次のことができます。
C-x r r
:レジスターにコピーするC-x r y
:長方形をヤンクするC-x r o
:四角形を開き、テキストを右に移動します(それが何を意味するかは関係ありません...)C-x r c
:四角形を空白にします (スペースで置き換えることを意味すると思いますが、確認するには試してみる必要があります)C-x r t
:テキストのプレフィックス(上記のとおり)C-x r k
:殺害(上記の通り)
emacs24+ には、行に番号を付ける機能もあります。
(rectangle-number-lines START END START-AT &optional FORMAT)
Insert numbers in front of the region-rectangle.
START-AT, if non-nil, should be a number from which to begin
counting. FORMAT, if non-nil, should be a format string to pass
to `format' along with the line count. When called interactively
with a prefix argument, prompt for START-AT and FORMAT.
にバインドされています C-xrN デフォルトでは。