- ベストアンサー
vimエディタでのvisualモードでヤンクした文字列を使って置換したい
いつもお世話になっています。 vimエディタで、vキーを押すと、visualモードになって、範囲選択ができるようになります。 ここで、範囲選択(選択された範囲は反転表示される)をして、yを押すと、範囲選択した領域をヤンクできます。 これを、:%s/ヤンクした文字列/ヤンクした文字列を修正した文字列/g として置換するのに使いたいのですが、どのようにすれば使用することが出来るのでしょうか? バッファを使って、"Ayとして、バッファAにヤンクして、 :%s/'A/修正後の文字列/g としてみましたがダメでした。 修正前後の文字列がとても長いのに、修正する点は一部だけだったりするので、visualモードでヤンクしたものを使いたいと思っています。 マウスで反転表示させて、:%s/マウス右クリックで貼り付け とすればいいのですが、マウスを使わない方法はないのでしょうか? 有識者の方、よろしくお願いいたします。
- miraise
- お礼率83% (152/183)
- その他([技術者向] コンピューター)
- 回答数2
- ありがとう数5
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「:%s/」の後に、「CTRL-R "」でヤンクした文字列をペーストできると思うのですが、どうでしょうか。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4848/10262)
その行をyypで複製して、複製した行を、 :%s/置換前/置換後/g に書き換えて、"add で、バッファに取り込んで、@a で実行。 で、どうでしょうか。
お礼
お返事が遅れてしまい申し訳ありません。 マクロの使用でしょうか。 マクロはほとんど・・・まったくつかったことがありませんので気づきませんでした。 これだと、マクロの編集もできそうですね。 大変参考になりました。 現在は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をやっても、うまくコピーできません。 なにかいい方法はないでしょうか?
- ベストアンサー
- Windows XP
- 文字列置換
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 が・・・まったく置換はされませんでした。 よろしければお教えください。よろしくお願いいたします。
- 締切済み
- Linux系OS
- 置換文字列の中に"?"があると置換できません。
恐れ入ります。 ?”クエスチョンマーク”の置換をしたいのですが できなくて困っています。 例 #!/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 ではだめです。
- 締切済み
- Visual Basic
- 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のセルに入っている文字列から生成したいのです。 ご存知の方がいらしたら、お教え下さい。
- 締切済み
- オフィス系ソフト
- マウスで文字列が選択できなくなりました。
Macご愛好の皆様にご質問です。 何だか突然マウスで文字列が選択できなくなりました。 主にSAFARIで文字入力する際に選択が出来ずに困っています。 コマンド+Aで全て選択することは可能なのですが・・・ いったい何が原因なんでしょうか・・
- 締切済み
- Mac
お礼
お返事が大変遅れてしまい申し訳ありません。 都合で*nix系ではない部署に異動してしまいましたので確認できませんでした。 自宅にて調べてみました。 vim ver 6.3です。 なぜかうまくいきませんでしたが、CTRL系のキーバインドのまとめをしらべてみると、 <C-R>{0-9a-z"%#*:=} 入力に応じたレジスタの内容を入力 というものが見つかりましたので、おっしゃるとおりで入力できるようです。 なぜ当方のマシンではできないのかは不明です。。 ただ、スペックの都合上、FedoraCore4をいれており、日本語も文字化けしてますし、なぜかshutdownコマンドがrootでも見つからないなどありますので、マシンの問題かと思います。 インストールしたばかりなので、いきなりバックドア作られてshutdownコマンドも消されて・・・ということはないと思いますが、再度クリーンインストールして試してみます。 ご回答ありがとうございました。m(_ _)m