- ベストアンサー
エディタのViで、検索する文字列をテキスト中からコピーしてきたいのですが。
Viで、テキスト中にある文字列(パターン)を検索したいのですが、どうすればよいのでしょうか。 /tangoと入力すれば、tangoというパターンを検索できるのはわかるのですが、 tangoというパターンをキーボードから打つのではなくて、 テキスト中にtangoというパターンがあるのを見つけて 「あ、このtangoというのを検索したいな~~」 と思って、テキスト中からコピーしてきて検索する方法が知りたいのですが。 あと、Viの操作方法でよくわからないことが出てくるので、 やさしく解説しているサイトを教えていただけるとありがたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
普通の vi では、簡単には無理です。 vi クローンのうちのひとつ vim であれば、単語にカーソルを合わせて * と打つと、/\<tango\> としたのと同じことになります。 # と打つと、?\<tango\> としたのと同じことになります。 「どうしてもやりたい」ということであれば、以下のような手順で、出来ない ことは無いです。 (1) 単語の先頭にカーソルを合わせる (2) yw として単語を yank する (3) 適当な空白行に行って、p として単語を copy する (4) 行の先頭に / を挿入する (5) その行を yy とやって copy する (6) @@ と打つと、その単語を探す (7) 探し終わったら、ファイルに加えた変更を戻しておく どこまで vi を知っているか分からないので、一応解説を。 vi は、「バッファ」というものを持ってます。例えば、コピーする領域が 幾つもあると思ってください。 @ は、そのバッファをコマンドだと思って実行する機能があります。 先に紹介したやり方は、名前なしのバッファを使ったやり方ですが、探しながら 編集をしていくと、バッファの内容が変わってしまうので、いまいち使い勝手が 良くありません。 例えば、z という名前を持つバッファを使う場合には、"zyy とやって取り込み 実行するときには "z@ とやります。 複雑な操作をやるときや、一連の操作を繰り返し行ないたいときには、重宝します。
その他の回答 (1)
- miya_777
- ベストアンサー率31% (44/140)
telnetは何を使っていますか? telnetにteratearmを使えば、マウス操作のみで文字列をコピーできます。 マウスで範囲選択して、右クリックでペーストされます。 /は手入力して、上記方法でペーストすればOKです。 マニュアルは下記URLを参照。
補足
ご回答ありがとうございます。 が、質問は、telnetやエミュレータの機能を使わないで、 vi固有の機能だけを使って行うやり方です。 (言葉足らずですみません。) できないのなら、できないとご回答ください。
お礼
(1)~(7)のやり方は、ちょっっっと手間がかかりますね。(^^; でも、回答としては、 もう、もんくなしの良回答です。