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

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

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

このページでは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

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

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメント

コメントを残す

*