このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:vi エディタの操作:カット・コピー・ペースト

vi エディタの操作:カット・コピー・ペースト

 テキスト編集において、文章の切り取りやコピー、貼り付けといった操作は基本的で重要な機能です。vi エディタでも、他の一般的なエディタと同様にこれらの操作を行うことができます。しかし、vi ではこれらの操作に対する呼び方やコマンドが独特であり、初めて使用する方には少し戸惑うかもしれません。ここでは、vi におけるカット(切り取り)、コピー、ペースト(貼り付け)の操作方法について詳しく解説します。

vi における用語の違い

 vi では、一般的なエディタでの名称とは異なる用語が使用されています。以下の表にviでの呼び方をまとめます。

一般的なエディタでの名称viでの名称
カット(切り取り)デリート(delete)
コピーヤンク(yank)
ペースト(貼り付け)プット(put)
viにおける用語の違い
  • デリート:選択したテキストを削除し、バッファに保存します。
  • ヤンク:選択したテキストをコピーし、バッファに保存します。
  • プット:バッファに保存されたテキストを貼り付けます。

練習用ファイルの準備

 実際に操作を練習するために、システムの/etc/crontabファイルをカレントディレクトリにコピーし、vi で開きます。

user01@ubuntu:~$ cp /etc/crontab  .
user01@ubuntu:~$ ls
crontab  work          テンプレート  ドキュメント  ピクチャ      公開
snap     ダウンロード  デスクトップ  ビデオ        ミュージック
user01@ubuntu:~$ vi crontab

デリート(カット)

 vi でテキストを削除(カット)するには、xキーまたはdコマンドを使用します。xキーはカーソル位置の文字を1文字削除します。一方、dコマンドは削除する範囲を指定するために、他のカーソル移動コマンドと組み合わせて使用します。

dコマンドの使い方

 dコマンドの後にカーソル移動コマンドを指定することで、削除する範囲を決定します。以下に主な組み合わせを示します。

コマンド内容
d$カーソル位置から行末までを削除
d0カーソル位置から行頭までを削除
x または dlカーソル位置の文字を1文字削除
dwカーソル位置から次の単語までを削除
dggカーソル位置からファイルの先頭までを削除
dGカーソル位置からファイルの末尾までを削除
dコマンドの使い方

プット(ペースト)

 削除(デリート)やコピー(ヤンク)したテキストを貼り付けるには、pコマンドを使用します。pコマンドは、バッファに保存されたテキストをカーソルの次の位置に貼り付けます。

実践例:行末までをデリートして貼り付け

  1. カーソルを削除したい位置に移動します。
  2. d$ と入力します。
  3. カーソル位置から行末までのテキストが削除され、バッファに保存されます。
  4. 貼り付けたい場所にカーソルを移動して、pを入力して貼り付け(プット)します。

ヤンク(コピー)

 テキストをコピーするには、yコマンドを使用します。yコマンドもdコマンドと同様に、カーソル移動コマンドと組み合わせて使用します。

yコマンドの使い方

コマンド内容
y$カーソル位置から行末までをコピー
y0カーソル位置から行頭までをコピー
ywカーソル位置から次の単語までをコピー
yggカーソル位置からファイルの先頭までをコピー
yGカーソル位置からファイルの末尾までをコピー
yコマンドの使い方

実践例:行末までをヤンク

  1. コピーしたい位置にカーソルを移動します。
  2. y$ と入力します。
  3. カーソル位置から行末までのテキストがコピーされ、バッファに保存されます。
  4. コピーしたテキストは、pコマンドで貼り付けることができます。

現在の行の操作

特定の行全体を操作したい場合には、以下のコマンドが便利です。

コマンド内容
yy または Y現在の行をヤンク(コピー)
dd現在の行をデリート(削除)
現在の行の操作
  • dd:カーソル行全体を削除し、バッファに保存します。
  • yy:カーソル行全体をコピーし、バッファに保存します。

例:行の削除

  1. 削除したい行にカーソルを置きます。
  2. dd と入力します。

例:行のコピーと貼り付け

  1. コピーしたい行にカーソルを置きます。
  2. yy と入力します。
  3. 貼り付けたい位置にカーソルを移動します。
  4. p と入力して行を貼り付けます。

コマンドの組み合わせ

 vi では、編集操作コマンドとカーソル移動コマンドを組み合わせることで、柔軟なテキスト操作が可能です。この組み合わせにより、特定の範囲を的確に指定して編集できます。

主な組み合わせ例

  • 削除(デリート)
    d + 移動コマンド(例:dwd$dG
  • コピー(ヤンク)
    y + 移動コマンド(例:ywy0yG

ファイルの保存とviの終了、練習ファイルの削除

 これまでの練習で、crontabファイルを編集しました。ここでは、そのファイルを保存してvi を終了し、練習用に作成したファイルを削除する手順を解説します。

viでファイルを保存して終了する

1.コマンドモードに移行する

 まず、Escキーを押してコマンドモードに戻ります。挿入モードでテキストを編集していた場合、Escキーを押すことでコマンドを入力できる状態になります。

2.ファイルを保存してviを終了する

コマンドモードで以下のコマンドを入力し、Enterキーを押します。

:wq!
  • ::コマンドラインモードに入る
  • w:ファイルを保存する(write)
  • q:viを終了する(quit)
  • !:強制的に実行する(上書き保存などの確認を無視)

練習で作成したファイルを削除する

vi を終了してターミナルに戻ったら、練習用にコピーしたcrontabファイルを削除します。

user01@ubuntu:~$ rm crontab

削除の確認

lsコマンドでファイルが削除されたことを確認します。

user01@ubuntu:~$ ls
snap     ダウンロード  デスクトップ  ビデオ    ミュージック
work     テンプレート  ドキュメント  ピクチャ  公開

まとめ

  • デリート(カット)dコマンドを使用し、削除する範囲をカーソル移動コマンドで指定します。
  • ヤンク(コピー)yコマンドを使用し、コピーする範囲をカーソル移動コマンドで指定します。
  • プット(ペースト)pコマンドでバッファの内容を貼り付けます。
  • 行全体の操作ddで行を削除、yyで行をコピーできます。

 vi の編集機能は強力で柔軟性が高く、これらのコマンドを組み合わせることで効率的なテキスト編集が可能になります。実際に操作を練習して、vi の使い方に慣れていきましょう。