- ベストアンサー
emacsのreplace-regexpで改行を指定する方法
例えば aaa, bbb, ccc, ddd, eee のような文字列の ","を改行に置換して aaa bbb ccc ... のようにする操作で(query-)replace-regexp<ESC %>を使って行いたいのですが、RETURNを指定するにはどのようにしたら良いのでしょうか? ESC % とうちこみ、 Query replace , with: <RETURN> と単純に入力しただけではうまく行きません。。。 以上宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>with: <RETURN> with: C-qC-j ([Ctrl]を押しながら[q], [Ctrl]を押しながら[j]) と入力してから[return]キー([Enter]キー)を 押せばうまくいくと思います。
その他の回答 (2)
- nightowl
- ベストアンサー率44% (490/1101)
.emacs が悪さをしているとは考えられないのでしょうか。 emacs -q は試されました? C-q がおかしければその後何を入力しても効果はないでしょうね。 逆に言えば、C-j が何に割り当てられていてもこの場合は関係ないわけですが。 なぜ標準では M-C-c の exit-recursive-edit が C-q に束縛されているのか、 なぜこの質問が「プログラミングカテ」に投げられているのか、 なぜ真剣に答えを聞きたい割にはお使いの Emacs のバージョンや .emacs の抜粋が書いてないのか、興味は尽きません。 ま、どっちみち聞きっぱなしで返事はないんでしょうけど。
- HOGERA3
- ベストアンサー率35% (50/139)
>なにか方法が違うのでしょうか? 以下は私が行った手順です。 (<cr>は[Enter]キーを押したことをあらわします) 1. ESC-% 2. Query replace: ,<cr> 3. Query replace with: C-qC-j 4. <cr> 5. Query replacing with ^J: (? for help)y 6. Query replacing with ^J: (? for help)y ...(気が済むまでyを入力) 7. Replaced 4 occurrences で終了。 >CTRL-j はcommand-new-line-indent >CTRL-q はexit-recursive-edit >とショートカットが割りついています。 私の場合は C-j newline-and-indent C-q quoted-insert となってます(M-x describe-bindings で確認)。
お礼
有難うございます。 key-bindingが違っていて最初は上手く行きませんでしたが、教えて頂いたとおりで上手く動作させることが出来ました。 お礼遅れましたがどうも有難うございます。
補足
アドバイスありがとうございます。 試したのですが、CTRL-q CTRLjとした時点で一つ目のマッチした部分で改行されてそれで終了してしまいました… なにか方法が違うのでしょうか? CTRL-j はcommand-new-line-indent CTRL-q はexit-recursive-edit とショートカットが割りついています。 以上お願いします。