web-dev-qa-db-ja.com

Emacsで文字を改行に置き換える方法は?

Emacsで;replace-stringを使用して、文字を-replace-regexp-などの新しい行に置き換えようとしています。

次のコマンドを試しました。

  • M-x replace-string RET ; RET \n

    これは、;を2文字で置き換えます:\n

  • M-x replace-regex RET ; RET \n

    これにより、次のエラーが発生します(ミニバッファーに表示されます)。

    置換テキストでの「\」の無効な使用。

このタスクにreplace-stringを使用することの何が問題になっていますか?他の方法はありますか?

ありがとう。

261
Lei

M-x replace-string RET ; RETC-q C-j

  • C-q quoted-insertの場合、

  • C-j 改行です。

乾杯!

394
Jonathan Arkell

ミニバッファーに改行を入れる方法は4つあります。

  1. C-o

  2. C-q C-j

  3. C-q 12(12は改行の8進数値です)

  4. C-x o メインウィンドウに、で改行を殺す C-k、その後 C-x o ミニバッファに戻り、ヤンクして C-y

65
slipmthgoose

いつでもミニバッファーにカットアンドペーストできることを忘れないでください。

そのため、バッファから改行文字(または任意の文字列)をコピーし、置換テキストの入力を求められたらヤンクするだけです。

23
Bloat

より明示的に:

セミコロン文字(;)を改行に置き換えるには、次の正確な手順に従ってください。

  1. 変更したいテキストを含むバッファの左上にカーソルを置きます
  2. M-x replace-stringと入力して、RETURNを押します
  3. ミニバッファは次のようなものを表示します:文字列を置換(デフォルト^->):
  4. 置換する文字を入力します。この場合、 ; Returnを押します
  5. ミニバッファは次のようなものを表示します:string;で:
  6. C-q C-jを実行します
  7. セミコロンのすべてのインスタンスが改行に置き換えられます(カーソル位置からバッファーの最後まで表示されます)

元の説明が言うよりも少しだけ。

8
afc

テキストモードに切り替える

M-x text-mode

インデントするブロックを強調表示する

インデント

C+M \

どのモードにも切り替えます..

2
rebelbass