すべての行にプレフィックスを追加する方法は?


35

私は以下のコードを持っています:

Hello
There
I am some code

そして、その前に次のようなコードを追加したい:

I said Hello
I said There
I said I am some code

では、各行にプレフィックスを追加するにはどうすればよいですか?

回答:


47

あなたは接頭辞を追加することができますM-x string-rectangleにバインドされています、C-x r t。これは、長方形の選択を操作する一連のコマンドの一部です。これは、長方形のすべての行にテキストを挿入します。

最初の行の先頭にマークを設定することから始め、プレフィックスを付ける最後の行の最初の文字にカーソルを移動します。

*Hello
 There
▮I am some code

次にを使用してC-x r t、プレフィックス(I said)を入力し、を押しRETます。これにより、テキストが長方形の各行に追加されます。

I said Hello
I said There
I said I am some code

マークと同じ列にカーソルを並べないと、長方形のその部分が上書きされます。

*Hello
 There
 I am▮ some code

同じコマンドを使用すると、次の結果になります。

I said o
I said e
I said  some code

3
あなたは良い答えのバッジを獲得する2番目の人です:)
ニカエル

代替手段はを使用することM-x string-insert-rectangleです。それは非常に似ていますが、選択の各行の先頭にstring-insert-rectangle 挿入しますが、をstring-rectangle 置き換えるので、後者で、何も上書きしたくない場合は選択についてより正確にする必要があります。
ジェフクリテス

32

multiple-cursors-modeを使用して、すべての行にカーソルを置くことができます。次に、入力したテキストが各行に挿入されます。

コードの最初のポイントから始めます。

▮Hello
 There
 I am some code

その後、C->2回ヒットします。(これは推奨されるキーバインディングです。自分で設定する必要があります。)これにより、次の2行に2つの余分なカーソルが作成されます。

▮Hello
▮There
▮I am some code

次に入力しI saidます。テキストは各行に追加されます:

I said ▮Hello
I said ▮There
I said ▮I am some code

最後にヒットRETして、複数カーソルモードを終了し、最後のカーソルにポイントを置きます。

I said Hello
I said There
I said ▮I am some code

ここでは、それがどのように機能するかを示しているビデオです。



12

別のオプションはマクロを使用することです。これは、この特定のケースでは少し不格好でも、長方形の選択や複数のカーソルよりも多くのタスクを処理できます。

最初の行の先頭にカーソルを置き、ヒットF3して記録を開始し、テキストを挿入し、カーソルを次の行の先頭に移動して、F4記録を停止します。ここでF4もう一度クリックして、マクロC-2 F4を繰り返したりC-0 F4、2回繰り返したり、エラー(行切れなど)が発生するまで繰り返したりします。


9

あなたは、インストールすることができ、悪をして、任意の数でそれを行うviのような方法 -私が使用して視覚的なブロック選択を好むCtrl+をV、各ラインをマークすると、Shift+ I挿入して、あなたが挿入し、最終的にヒットしたいテキストを入力するESCモードINSERT出口へとテキストが各行の先頭に追加されます。これは、emacsの長方形の選択に非常に似ていますが、キーストロークが少し少なくなります。


7

これは、artagnonの答えに非常に似ていますが、replace-regexpどのキーにもバインドされていません。

だから、私は実際に使用query-replace-regexpするようにデフォルトでバインドされC-M-%た後、交換してください^指定された接頭辞でI said、次に入力!もはやプロンプトを表示せず、すべてを交換します。


4

あなたがしている場合はcua-mode有効になって、それから:

  • C-a 行頭に移動するには、
  • C-RET 長方形を開始するには、
  • (下キー)3回目に移動するには2回、
  • I said 挿入されるテキストとして
  • C-RET 長方形を終了する

cua-modeEmacsの標準的な長方形と比較して、同等の作業方法を好む:

  • C-a 行頭に移動するには、
  • C-SPC 長方形を開始するには、
  • (下キー)3回目に移動するには2回、
  • C-x r t I said RET テキストを挿入する

これcua-modeは、標準のEmacsの長方形と比較して2つのキーを押す回数を節約します。

しかし、私にとって、cua-modeの追加の利点は、テキストを長方形に追加できることです(個人的には、標準のEmacs長方形でテキストを追加する方法がわかりません)。cuaモードでは、1つのRETキーを押すだけで、の前に入力されI saidます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.