• ベストアンサー

vimエディタでのvisualモードでヤンクした文字列を使って置換したい

いつもお世話になっています。 vimエディタで、vキーを押すと、visualモードになって、範囲選択ができるようになります。 ここで、範囲選択(選択された範囲は反転表示される)をして、yを押すと、範囲選択した領域をヤンクできます。 これを、:%s/ヤンクした文字列/ヤンクした文字列を修正した文字列/g として置換するのに使いたいのですが、どのようにすれば使用することが出来るのでしょうか? バッファを使って、"Ayとして、バッファAにヤンクして、 :%s/'A/修正後の文字列/g としてみましたがダメでした。 修正前後の文字列がとても長いのに、修正する点は一部だけだったりするので、visualモードでヤンクしたものを使いたいと思っています。 マウスで反転表示させて、:%s/マウス右クリックで貼り付け とすればいいのですが、マウスを使わない方法はないのでしょうか? 有識者の方、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

「:%s/」の後に、「CTRL-R "」でヤンクした文字列をペーストできると思うのですが、どうでしょうか。

参考URL:
http://www.ac.cyberhome.ne.jp/~yakahaira/vimdoc/cmdline.html#c_CTRL-R
miraise
質問者

お礼

お返事が大変遅れてしまい申し訳ありません。 都合で*nix系ではない部署に異動してしまいましたので確認できませんでした。 自宅にて調べてみました。 vim ver 6.3です。 なぜかうまくいきませんでしたが、CTRL系のキーバインドのまとめをしらべてみると、 <C-R>{0-9a-z"%#*:=} 入力に応じたレジスタの内容を入力 というものが見つかりましたので、おっしゃるとおりで入力できるようです。 なぜ当方のマシンではできないのかは不明です。。 ただ、スペックの都合上、FedoraCore4をいれており、日本語も文字化けしてますし、なぜかshutdownコマンドがrootでも見つからないなどありますので、マシンの問題かと思います。 インストールしたばかりなので、いきなりバックドア作られてshutdownコマンドも消されて・・・ということはないと思いますが、再度クリーンインストールして試してみます。 ご回答ありがとうございました。m(_ _)m

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

その行をyypで複製して、複製した行を、 :%s/置換前/置換後/g に書き換えて、"add で、バッファに取り込んで、@a で実行。 で、どうでしょうか。

miraise
質問者

お礼

お返事が遅れてしまい申し訳ありません。 マクロの使用でしょうか。 マクロはほとんど・・・まったくつかったことがありませんので気づきませんでした。 これだと、マクロの編集もできそうですね。 大変参考になりました。 現在はvimを使わない部署に異動してしまいましたが、機会があれば勉強して使いたいと思います。 ご回答ありがとうございましたm(_ _)m

関連するQ&A

  • 文字列の置換

    JAVAであるファイル内の文字列を置換するプログラム(日本語)を作りたいのですが、 ・ ・ String h_s; FileReader h_fr = new FileReader(in_filename); BufferedReader h_br = new BufferedReader(h_fr); while(true){  h_s = h_br.readLine();  if (h_s == null){   break;  }  ●文字列を置換するプログラム● } ・ ・ ここの●文字列を置換するプログラム●にあたる適当な関数って何かありますか? たとえばperlでいうと↓みたいなものなのですが・・・ s/置換前文字/置換後文字/g よろしくお願いします。

    • ベストアンサー
    • Java
  • Perlの文字列置換について

    とあるソースで $hogehoge =~ s!<文字列>! do{ $hoge =qq(hogehoge);} !egiox; $_ = $hoge; というのを見たのですが $hogehoge =~ s/<文字列>/hogehoeg/egiox;とは何が違うのでしょうか? また修飾子gとoではどちらが評価されるのでしょうか?または二つとも評価されるのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • XP特有ということではないと思いますが、コピペしようとして、文字列を選

    XP特有ということではないと思いますが、コピペしようとして、文字列を選択する際、反転させて、右クリックしても、少しでもマウスが動くと選択している文字列がずれてしまいます。 あいうえお と選択しても、右クリックして、コピーにカーソルを持って行こうとすると、 いうえお だけしか選択してないことになります。うまく選択してないということなのだろうと思います。Ctrl + Cをやっても、うまくコピーできません。 なにかいい方法はないでしょうか?

  • 文字列置換

    UNIXのコマンドで文字列の置換を試みています。 今回行いたい置換としては。。。 12年 1986年2月12日 14 などの文字列を NUM年 NUM年NUM月NUM日 NUM などに、連続した数字をひとまとめにNUMに置換したいと考えています。 文字列の置換方法としてsedコマンドがあると聞いてしらべてみたのですが、いまいいち理解することができませんでした。 自分で考えて試してみたコマンドが以下の通りです。 sed -e "s/\([1-9]\{1,2,3,4\}\)/NUM/g" filename が・・・まったく置換はされませんでした。 よろしければお教えください。よろしくお願いいたします。

  • 置換文字列の中に"?"があると置換できません。

    恐れ入ります。 ?”クエスチョンマーク”の置換をしたいのですが できなくて困っています。 例 #!/usr/bin/perl $a='a?a'; $b='bbba?abbbbaaaabbbbabbbbb'; $b=~ s/$a//g; print "$b\n"; 文字列$bから”a?a”を削除しようとしているのですが、 変化しません。 ためしに\?としてみましたが・・・だめでした。 ?を!に変えたい!とかいう人は絶対いると思い 「クエスチョンマーク 置換」 等で検索したのですが、 「0個(=1個もない)、または1個ある場合」を表している」 等の情報ばかりでした・・・ どうか教えてください。。。

    • ベストアンサー
    • Perl
  • 文字列の並び換え

    Visual BASIC 6で 文字列の並び換えの方法がわかりません 文字列には半角も全角もあって数字もあります。 if A$ < B$ then ではだめです。

  • Word2000での文字列の選択

    Word2000を使っています。文字列を選択するときにマウスで文字列の上をドラッグしますが、化学式を含むような時、例えばA_(1-x)B (1-xが下付の意味)の中の1-xだけを選択しようと思っても、必ずAやBも一緒に選択されてしまいます。このような自動認識機能を使わないようにすることはできるのでしょうか。

  • 文字列をアドレスに変換するには・・?

    VLOOKUP(検索値,範囲,列番号,検索の型)の範囲を指定する時、通常はマウス等で範囲を指定しますが、範囲の左上と右下のアドレスが文字列で、どこかのセルに入っている時、その文字列を使って範囲の情報を作るにはどうしたら良いでしょうか? 例えば、下記のような状況の時 A B C D E 1 1 4 7 A1 C3 2 2 5 8 3 3 6 9 =VLOOKUP(2,A1:C3,3) → 8 となるわけですが、「A1:C3」の部分の情報をD1,E1のセルに入っている文字列から生成したいのです。 ご存知の方がいらしたら、お教え下さい。

  • 文字列置換

    和文・欧文混じりの文章の、アルファベット部分に*印をつけるプログラムを作成したいのですが $line=~s/([A-Za-z])/\*$1\*/g; とすると、 東京都千代田区SE を 東京都千代田区*S**E* としたいのに 東京・s*千代・c*区*S**E* のように和文部分まで化けてしまいます。 漢字の文字コードが問題だろうということまでは解るのですが、 どうやって欧文だけ置換して良いのか解りません。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • マウスで文字列が選択できなくなりました。

    Macご愛好の皆様にご質問です。 何だか突然マウスで文字列が選択できなくなりました。 主にSAFARIで文字入力する際に選択が出来ずに困っています。 コマンド+Aで全て選択することは可能なのですが・・・ いったい何が原因なんでしょうか・・

    • 締切済み
    • Mac