【使えるものをPickUp】viでのコピー・カットの方法

viのコピーとカット
  • このエントリーをはてなブックマークに追加
  • Pocket

テキストファイルを使っていると必ず使うのがコピーアンドペーストとカットアンドペーストだ。viでももちろん両方使えるようになっている。

コピーアンドペースト

ご存知の通り、テキストデータの編集はコンピュータの仕事の中でも基礎の基礎だ。

特に重宝する機能として、文字列をコピーしては貼り付ける。もしくは文字列を切りとり貼り付ける機能として「コピーアンドペースト」「カットアンドペースト」というものがある。俗にいう「コピペ」だ。

Windowsのメモ帳などの場合、マウスなどで範囲を選択して「Control+c」「Control+v」とするとコピーが完了する。WindowsのほとんどのGUIテキストエディタで採用されている。

ではLinuxなどのCUIベースな環境の基礎的なエディタであるviもしくはvimの場合どうだろうか?

もちろん「コピーアンドペースト」「カットアンドペースト」機能がしっかりと実装されている。ただしWindowsのようなGUIの環境内でクリップボード(コピーデータの保存場所)の機能を使用せず、基本的にエディタ内部でのやり取りが主となる。

vimの場合ファイルの間をまたぐときは、同時にファイルを開いてエディタ内部でコピーアンドペーストなどをすることになる。はじめは少々難しいかもしれない。

基本的にコピーペーストなどはノーマルモードで実行する。

viでの最も基礎的なコピー

以下のような内容のテキストファイルがあるとする。

デフォルト画像

指定したい行にカーソルを運び「yy」とするとその行がコピー指定できる。外見上は変化がないかもしれないが、正常なので安心していただきたい。

次に貼り付けたい行にカーソルを移動してから「p」とするとペーストされるはずだ。

1行コピー:yy

貼り付け:p

今回1番上の行で「yy」一番下の行で「p」としてみる。

yy2

一番下に文字列が追加された。

複数行のコピーは下記の通りだ。

複数行コピー:行数yy

例えば3行目から5行目をコピーしたい場合3行目にあわせて「3yy」としてみよう。同じく任意の場所で「p」とすればコピー出来るはずだ。

yy

yはヤンクの頭文字であり「ひっぱる」という意味だ。

yy

切り取りについて

実はvimでは削除と切り取りは同じものとみなされている。削除しているつもりでも削除した寸前の文字、もしくは文字列は内部的に保持されている。

たとえば「dd」とすると一行削除されるが、その状態で任意の位置で「p」としてみるとペーストされるはずだ。

1行削除(カット):dd

例を見てみよう。

dd

一番上の行で「dd」とすると切り取りされたことがわかる。

dd

最後の行で「p」とすると貼り付けが行われる。

コピーのときと同じく最初に数字をいれて「dd」例えば「3dd」とすると3行切り取りが行われる。

その他の小技

コピーや切り取りの指定方法もいくつかバリエーションが存在するので、使えそうなものをいくつか紹介しよう。なおすべてキーボードで完結する。

デフォルトファイル

以下のような内容のファイルが存在するとして一番下の行で「p」ペーストを行うことにする。

yw1

一単語コピー

yw

ywでノーマルモードでカーソルにある任意の一単語をコピーしてくれる。returnにカーソルを合わせてywすると、次のようにコピーができる。

yw

 

一単語切り取り

正確には、カーソル位置から現単語末尾までの削除だ。

dw

単語の頭で叩くと、一単語を切り取れる。下記はreturnのr位置で実施した場合の例だ。

dw1

カーソルから行末までをコピー

先ほどと同じく「return 0;」の先頭からコピーしてみる。

y$

y$

 

カーソルから行末までを切り取り

同じく切り取りも可能となっている。

d$

d$

ヴィジュアルモードの使用

ヴィジュアルモードの「-- ヴィジュアル --」

編集したいテキストをひらいて、コピーしたい単語、行などまで移動、そこから「v」をおすと「ヴィジュアルモード」へ移行する。その状態でカーソルを移動すると、自由度の高い範囲選択が可能になっているのがわかるはずだ。範囲を選択したらこの状態で「y」をおすと指定範囲がコピーされるので、任意の場所で「p」をおすとペーストが出来る。

範囲選択

ノーマルモードにて「v」を押す。

ヴィジュアルモード

範囲指定が完了したら「y」を押してみる。任意の行で「p」を押してみよう。

vs2

ヴィジュアルモードの「-- ビジュアル 行 --」

ノーマルモードの状態で「V」をおすと行単位で範囲を指定できる「-- ビジュアル 行 --」モードへ移行する。この状態は行単位で任意に範囲指定できる。

ヴィジュアルモード V

コピーのほかにもヴィジュアルモードで指定した範囲は切り取りも可能なので、やってみよう。範囲指定した状態で「d」とすれば切り取りが行われる。貼り付けを行うときは「p」とする。

ヴィジュアルモード ペースト

タブなどの情報もまとめてペーストされる。

ヴィジュアルモードの「-- ビジュアル 矩形 --」

ノーマルモードの状態で「Control+v」をおすと長方形で範囲を指定できる「-- ビジュアル 矩形 --」モードへ移行する。主にプログラムのソースコードやスクリプトのコメントを削除するときに使用するとよいだろう。

vs5

このようなコメントアウトされた状態からもとに戻したいとする。

「Control+v」とすると四角状に範囲を指定できるので以下のようにしてみる。

vs6

この状態で「d」を押せば削除(切り取り)が行なわれ以下のようになる。

vs7

まとめ

このページではviでのコピーやカットの方法についてまとめてお伝えしてきた。

「yy」「dd」「p」をまずは覚えて、徐々に他のコマンドを覚えていくのがいいだろう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. qqq より:

    ×自由度の他界
    ○自由度の高い
    基本的な校正くらいして欲しいです。

    1. リカレントテクノロジー より:

      ご指摘いただきありがとうございます。
      一部文章におかしな部分がありましたので訂正いたしました。

      引き続き、ご愛読のほど、よろしくお願いいたします。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する