- ベストアンサー
vimエディタでのvisualモードでヤンクした文字列を使って置換したい
いつもお世話になっています。 vimエディタで、vキーを押すと、visualモードになって、範囲選択ができるようになります。 ここで、範囲選択(選択された範囲は反転表示される)をして、yを押すと、範囲選択した領域をヤンクできます。 これを、:%s/ヤンクした文字列/ヤンクした文字列を修正した文字列/g として置換するのに使いたいのですが、どのようにすれば使用することが出来るのでしょうか? バッファを使って、"Ayとして、バッファAにヤンクして、 :%s/'A/修正後の文字列/g としてみましたがダメでした。 修正前後の文字列がとても長いのに、修正する点は一部だけだったりするので、visualモードでヤンクしたものを使いたいと思っています。 マウスで反転表示させて、:%s/マウス右クリックで貼り付け とすればいいのですが、マウスを使わない方法はないのでしょうか? 有識者の方、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「:%s/」の後に、「CTRL-R "」でヤンクした文字列をペーストできると思うのですが、どうでしょうか。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
その行をyypで複製して、複製した行を、 :%s/置換前/置換後/g に書き換えて、"add で、バッファに取り込んで、@a で実行。 で、どうでしょうか。
質問者
お礼
お返事が遅れてしまい申し訳ありません。 マクロの使用でしょうか。 マクロはほとんど・・・まったくつかったことがありませんので気づきませんでした。 これだと、マクロの編集もできそうですね。 大変参考になりました。 現在はvimを使わない部署に異動してしまいましたが、機会があれば勉強して使いたいと思います。 ご回答ありがとうございましたm(_ _)m
お礼
お返事が大変遅れてしまい申し訳ありません。 都合で*nix系ではない部署に異動してしまいましたので確認できませんでした。 自宅にて調べてみました。 vim ver 6.3です。 なぜかうまくいきませんでしたが、CTRL系のキーバインドのまとめをしらべてみると、 <C-R>{0-9a-z"%#*:=} 入力に応じたレジスタの内容を入力 というものが見つかりましたので、おっしゃるとおりで入力できるようです。 なぜ当方のマシンではできないのかは不明です。。 ただ、スペックの都合上、FedoraCore4をいれており、日本語も文字化けしてますし、なぜかshutdownコマンドがrootでも見つからないなどありますので、マシンの問題かと思います。 インストールしたばかりなので、いきなりバックドア作られてshutdownコマンドも消されて・・・ということはないと思いますが、再度クリーンインストールして試してみます。 ご回答ありがとうございました。m(_ _)m