• ベストアンサー

エディタのviで行数を指定せずに、複数行をコピー&ペースト

エディタのviで、 複数行を選択してコピーして、それを別のところに貼り付けたいのですが、 やり方を教えてください。 nY のあとに Pなどとすれば、n行をコピー&ペーストできる、 というのはわかります。 でも、このやりかたでは、コピーするまえに行数がわかってないといけないと思います。(わたしは行数をいちいち数えている。) わたしの知りたいのは、n行という行数を指定しなくてもできるやり方です。 たとえば、 Windowsのメモ帳なら、 シフトキー+矢印キーで範囲指定し、Control+Cでコピーし、コピー先の場所に移動し、Control+Vで貼り付けできます。 行数がわからなくても、コピー&ペーストできますよね。 そういうやりかたが知りたいのです。 行番号の表示がない状態でできるやりかたがいいです。(それがデフォルトの状態なので。) わたしは、端末(PC)でエミュレータを立ち上げて、UNIXマシンに入っているのですが、 エミュレータの機能をつかったりとかマウスをつかったりはしないやり方を教えてください。

noname#836
noname#836

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.4

No.3 の方の回答が、どの vi でも通用するやり方です。 行単位ではなくなりますが、3)~4)のところを : を押してコマンドモードに 移らずとも、コピー範囲の終了地点にカーソルを移動して y'a と打っても OK です。 # 行単位ではなくなりますが 後、どの vi でも通用するやり方ではないのですが、vi クローンのうちのひとつ で、vim というのを使うと、やや直感的になります。 V を押すと、行単位の範囲選択モードに入り、Windows に近い、選択範囲を 目で確認しつつ、複写することができます。 複写開始行にカーソルを移動して V 、選択範囲が反転表示されるので、終了行に カーソルを移動して Y 。複写先の行に移動して、p or P で複写。 伝統的な vi の使い方を理解しつつ、便利な vi クローンを使えれば、使う というのが良いのではないでしょうか? # emacs 系に流れる、というのもひとつの選択肢かも (^^;

その他の回答 (3)

  • h_hikita
  • ベストアンサー率40% (104/257)
回答No.3

1)範囲の開始位置をma等と入力しマークを置く 2)範囲終了位置まで移動 3) :を入力しコマンドモードに移行 4)'a,.y 等とする 5) ペーストしたい先に移動し p と入力する。 等とするのではダメでしょうか?

noname#836
質問者

お礼

ありがとうございます。 参考になります。

  • Sean
  • ベストアンサー率9% (1/11)
回答No.2

私はこうやっています。(ただし、完全な答えにはなっていないし、こんなのあたりまえよと言われそう。もっといい方法があれば私も知りたい。) 1.コピーしたい部分の先頭行(or最後尾行)にカーソル移動。 2.ここでCntrl+G。 3.現在の行番号を覚える。 4.コピーしたい部分の最後尾行(or先頭行)にカーソル移動。 5.覚えたのが52行目だとしたら、y52Gでコピー完了。 6.あとはpでペーストです。

  • gould09
  • ベストアンサー率33% (196/589)
回答No.1

viのコマンドリファレンスを見た限りでは、お探しの機能は見つかりませんでした。 vi以外のエディタを探した方がいいのではないでしょうか?

関連するQ&A

  • アプリを切り替えずに指定エディタにペーストしたい

    一度か二度のショートカットの操作で、 選択した文字を、あらかじめ指定したテキストエディタに転記できる仕組みを作りたいと思いますが、どのようなやり方があるでしょうか。 欲を言えば、ペーストして流し込んだテキストに、タブとリターンを自動的に追加してくれる仕組みがあれば、非常に助かります。 ですが、実現させるためには、コピペツールを使えばいいか、または特殊なエディタを使えばいいのか、それとも他の方法があるのか分からないです。 用語集を作成する際に、この機能があれば便利だと思って質問しました。 原文を読んでいて、用語集に登録したい用語があったときに、要望しているショートカットの操作をすることで、別エディタにペーストできるようになれば、すごく生産的になります。読んでいる流れを中断してしまうと、話の理解が遮られるし、集中力が飛んでしまうからです。だから、[alt]+[tab]でウインドウの切り替えをする操作は、あまりやりたくありません。 今のところは、コピペツールのCliborを使って、FIFOモードにすることで、 コピー1→コピー2→…→コピーn→ペースト1→ペースト2→…→ペーストn とやっています。ですが、この方法だと、リアルタイムで他のテキストエディタに流し込めているかどうか分からないです。なので、コピーの操作をし損ねてしまっていても気付けないという欠点があります。 そうした問題を解決できて、他のテキストエディタに少しの操作で流し込める仕組みをどうやれば作れるのか、お知恵を拝借したいので、よろしくお願いします。 当方、お金がないので、有料アプリを使う場合、3000円程度まででお願いします。

  • 文字数や行数の指定ができるテキストエディタ

    15文字を20行、 20文字を7行など いろんな文字、行を簡単に指定できるエディタはありませんでしょうか? フリーソフト限定です。 行数が数えられるだけでも、ありがたいです よろしくお願いします。

  • エクセル2003 コピー・アンド・ペーストについて

    エクセル2003の質問です。 下記のデータをコピーして、指定行数おきに貼り付ける方法はありませんか? A1セル~A4セルをコピーしてA2行から指定行数おきに貼り付け(例として1行おき)    A 1  りんご 2  みかん 3  いちご 4  すいか    A 1 2  りんご 3   4  みかん 5      6  いちご 7 8  すいか 貼り付け位置も例としてA2にしました。 よろしくお願いします。

  • viで1度ヤンク連続ペーストの方法など

    viやvimのeditorで3つの質問です。 ヤンクした内容を連続してペーストする場合 どういう操作をすれば一番効率がいいのでしょう? "hoge"をヤンクして 複数行に渡ってペーストしたくても 一度ペーストするとヤンクバッファが空になってしまい 連続ペーストができなくて、またヤンクしてペースト、 ヤンクしてペーストと なんだか余計な操作をやっているようで 作業が面倒です。 もうひとつの質問は単語ヤンク(Not行ヤンク)した内容を 新たに改行してペーストする場面での効率的なやり方。 ywして単語をヤンクしたものを 次行を作成してペーストする時 わざわざoコマンドで挿入モードで改行して またエスケープキーでコマンドモードに移って pしていますが なんだか自分のやり方はえらくアホな感じがして もっと効率的なコマンドはありますか? あとviのコマンドモードのControl+Gってどのような コマンドでしたでしょうか? どうかよろしくお願いします。

  • 突然コピーペーストできなくなりました・・・

    昨日から急にコピーペーストできなくなって困っています。XPです。エクセル2000とOUTLOOK6で発生しています。文章を範囲指定して右クリックコピーボタンまでは通常通りに操作できますが、貼り付けボタンが白いままで押せない状態になっています。何故でしょうか?教えてください。

  • viで行の検索をしたいのですが?

    http://itpro.nikkeibp.co.jp/members/LIN/LIN_CONTENTS/20020531/1/vi.shtmlから vi [-Rbnr] [+[line]] file という構文が示されていますが、いまいちうまく出来ません。(指定の仕方がまちがっているかもしれませんが) sshでPuttyを使って、RedHat9(Publisher's Edition) を操作しています。 cのプログラミングをはじめたばかりですが、( gccのコマンドも使い切ってないのですが、) エラーの場合に出てくる行番号が エディタ上にはでてこないので、これを検索する方法を探していました。man でも探しましたが、分かりませんでした。cのプログラミングのエディタのもっと良い方法があれば更に知りたいのですが。(cpuが遅いので、sshで操作しています。)基本的にはviでの行の検索方法です。よろしく、お願いします。

  • 文字数と行数を複数指定できるエディタは?

    ライターをしてますが、 12字×5行、35字×9行、などなど 1P内にさまざまな文字数と行数が指定された文章をたくさん書きます。 今までワード98で、 総文章量(12字×5行なら75文字)の文章を打つ→その文章を選択→ 右インデントで一行の文字数がだいたい12文字になるところに見当をつけてあわせる →カーソルを1コ1コ移動させながら12文字数えて、そこにインデントをあわせる →完成。1行あけて次の文章(35字×9行…くりかえし) という方法をとってきました。これしかやり方を知らないのですが、かなり手間です。 こういう文章書きに適したエディタとか、 せめてワードの右インデントが今何文字目をさしているのかがわかる方法、 はないでしょうか?

  • VBAで特定行へのコピーを指定した回数繰り返す処理をしたいが。

    行2を行1へ、コピー&ペーストする。 行3を行1へ、コピー&ペーストする。 行4を行1へ、… というように、行1へのコピー&ペーストを、指定した回数行う、 という処理をVBAのコードで書きたいのですが、本をみてもよくわかりません。 回数の指定は、特定セルに入力した値を取得するような形でやりたいのです。 具体的に、こう書けばできるよ、といった回答をお願いいたします。

  • SELECTでの指定行からの指定行数文の取得

    こんにちは。 OracleでSELECT文、一発で指定行から指定行数分のデータを取得するように指定できるのでしょうか? 例) SELECT * from tbl01; で、100行取得できる状態で25行目から30行分取得する OracleのSQLリファレンスを調べたのですが該当するようなものは 見当たりませんでした。 よろしくお願いします。

  • 1行テキストをエクセルの複数行にまたがってペースト

    テキスト・エディタで書いた1行の文章を、エクセルの複数行にまたがってコピー&ペースとしたいのですが、どうしたらいいでしょうか? エクセル側の書式が定められていて、そこに文章を書く必要があるのですが、長文なのでエディタで執筆しました。そのままコピペすると1セル内に入ってしまいます。エクセルになったときの改行箇所が分からないので、そこにタブやコンマを挿入することもできません。セルを結合すると指定の書式と変わってしまうので、それもできません。 何か良い方法はないでしょうか?