• 締切済み

viのマーカのことで

viのマーカの使い方がよくわかりません。 例えば、1行目から10行目まで文字が詰まっているとします。 1行目にmaを入力し5行目にmbを入力してから、10行目にpを 入力すると、1行目から5行目までが11行目にコピーされると 思います。そして続けて、6行目から10行目までを11行目に コピーする時は、どういった感じでやればいいのでしょうか?

みんなの回答

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.2

この場合はマーカーを使うよりも名前つきバッファを使った方が良いでしょう。 1.1行目に移動して "ay5G と入力します。これにより、1行目から5行目までが   aという名のバッファに入ります。 2.10行目に移動して "ap と入力します。これにより、aバッファの内容が11行目   以降に吐き出されます。 3.6行目に移動して "by10G と入力します。6行目から10行目が、今度はbという   名のバッファに入れられます。 4.10行目に移動して、 "bp と入力します。bバッファの内容が吐き出されます。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

最近はjvimばかりでネイティブなviを使ってないんですけど… 手元のjvim3.0ではそのような動きにはなりません。 そもそもマーカーは「位置を記憶する」ことが目的なので、ma,mbだけではヤンクしないjvim3.0の動作が正しいと思います。 単純に同じことをする操作なら ・5行目でma ・1行目でy'a ・10行目でp ・10行目でmb ・6行目でy'b ・10行目でp という手順で可能ですが。

関連するQ&A

  • vi操作

    viで行と列を指定してコピーする boxコピーなんてできるのでしょうか?

  • viでのコメント文字入力

    vi初心者です。多数のサーバを管理しているため、viに慣れるようにがんばっています。 スクリプトファイルや設定ファイルをいじる際、「#」などのコメントアウト文字を行頭に入れる場面がよくあります。 viに詳しくないため、   ・コマンドモードで該当行に移動   ・入力モードに移って、#を入力   ・コマンドモードに戻って次の行へ移動   ・入力モードに移って、#を入力 を繰り返しています。 お尋ねしたいのは、   連続した数行の行頭にコメントアウト文字を効率よく   入力する方法 です。上手い方法があるのでしょうか? いろいろなサイトを見てみたのですが、分かりませんでした。今のやり方だと、一行ごとにモードを切り替えているため、効率が悪いように思うのです。 詳しい方のご回答をいただけると幸いです。よろしくお願いいたします!

  • viの使い方について

    viでファイルを跨いでコピーしたいのですが、その時、 ヤンク(?)とか言うviの機能で、名前付きバッファで コピー&ペースとしています。 名前付きバッファは次使うときは上書きされたり、viを 終了するとクリアされると説明されているのですが、 その様に動きません。 コピーした値が追加され残った状態です。また、viを 終了してもクリアされません。 名前付きバッファをクリアしたいのですが、できないのでしょうか。 クリアする方法を教えてください。 環境は、 Linux Red Hat 4.5

  • viで一括で行をつなげたい

    viエディタで、 :%s/???/???/g とかで、行を繋げることはできないでしょうか。 行の最後がある特定の文字列がきた場合には、 (もしくは全ての行の) 行と行をつなげる(改行をなくす)という意味です。 viで「Shift+J」で1行単位でできるのは知ってるのですが 一括置換したいです。 もし、viでなくても他のテキストエディタ等で方法があれば 教えてください。

  • Perlでのテキスト処理について

    Perlでのテキスト処理について質問です。 テキストファイルの中身が下記のようになっています。 【テキスト編集前】 --------------------------------------- test ,abc ,AB ,VI ,SS ,ma ---1行目 test ,abc ,AC ,PI ,VS ,ma ---2行目 test ,abc ,BA ,SS ,VS ,ma ---3行目 test ,abc ,BA ,VI ,VS ,ma ---4行目 test ,cde ,AA ,VI ,SS ,mb ---5行目 test ,cde ,CC ,PE ,VS ,mb ---6行目 test ,cde ,BC ,PI ,SS ,mb ---7行目 test ,cde ,AC ,PI ,SS ,mc ---8行目 --------------------------------------- 2列目(abc/cde)と6列目(ma/mb/mc)が同じ行に対しては 1行にまとめて出力したいと思っています。 この時、1列目、4列目、5列目はマージした形にし (同一文字は一度だけ出力、同一でない文字は/区切りで出力)、 2列目、6列目は同一文字をそのまま出力し、 3列目に関しては、該当する行の先頭行の文字列を 出力したいと思っています。 下記が当方の希望しているPerl実行後の出力結果です。 【テキスト編集後】 --------------------------------------- test ,abc ,AB ,VI/PI/SS ,SS/VS ,ma test ,cde ,AA ,VI/PE/PI ,SS/VS ,mb test ,cde ,AC ,PI ,SS ,mc --------------------------------------- このような編集をPerlで実行したいと思っているのですが、 どのような記述をすれば実行できるのか教えて頂けないでしょうか。 当方、Perlを始めたばかりで基本的なことを 伺っているのかもしれませんが すみませんが、ご了承ください。 宜しくお願いいたします。

  • viエディタのコマンド

     FreeBSDでapacheのhttpd.confを編集するのにviエディタをつかっているのですがhttpd.confがとても長く編集しずらく感じます。ときどき350行目のここがおかしいと教えていただくのですがviエディタでここが何行目かわかるコマンドがあるのでしょうか?また何行目に飛ぶためのコマンドはあるのでしょうか?今は文字列の検索/でその行までとんでいます。  よろしくおねがいします。

  • Viで書き込もうとすると、保存できません。

     はじめまして。Linaxはじめたばかりで躓いています。 viで、 etc/dhcpd.conf や etc/samba/smb.confに書き込もうとすると、 画面の一番下の行に一瞬警告文のようなものが出て、すぐに消えます。 そのご、書き込みをして、上書き保存しようとすると、「読み込みのみで、 保存できない」と言うような感じの内容の文章が出てきます。 esc後、:qで、一度viを終了しようとしても、vi自体を終われません。  ログインはrootでしてるので、編集できると思っていたのですが・・・。 恐れ入りますが、分かる方よろしくお願いいたします。

  • viの入力がおかしい

    こんにちは。 現在、ubuntuを使っているのですが、viで、入力モードの際にバックスペースをおしても文字が消せません。また、カーソルキーを押すとそれぞれA、B、C、Dと入力されてしまいます。普通にコンソールでコマンドを入力するときや、ブラウザーで検索するときは問題ありません。だれかわかる人がいましたら教えてください。

  • viでの日本語入力

    ホストにあるUNIXに接続して、 プログラムを書いたりしたいのですが、 viエディタを使ってすると日本語入力がうまくいきません。 telnetで接続して、 viエディタを起動させて、 日本語を入力すると文字化けを起こしてしまいます。 receiveの設定もtransmitのコード設定も間違っていないはずなんですが、 ほかに原因がわかりません。 muleを使うっていう方法もあるのですが、 個人的にviが使いやすいので、なんとかviでやりたいです。 ほかに原因が分かる方教えてください。

  • エディタのViで、検索する文字列をテキスト中からコピーしてきたいのですが。

    Viで、テキスト中にある文字列(パターン)を検索したいのですが、どうすればよいのでしょうか。 /tangoと入力すれば、tangoというパターンを検索できるのはわかるのですが、 tangoというパターンをキーボードから打つのではなくて、 テキスト中にtangoというパターンがあるのを見つけて 「あ、このtangoというのを検索したいな~~」 と思って、テキスト中からコピーしてきて検索する方法が知りたいのですが。 あと、Viの操作方法でよくわからないことが出てくるので、 やさしく解説しているサイトを教えていただけるとありがたいです。