vi (vim) でコピペする方法

端末エミュレータでコピペするのはめんどうでは?

Linux サーバを管理する時、vi (vim) を使わないといけないことが多いと思います。nano がインストールされたりしていることもありますが、nano もそれほど使いやすいと思えません。

Tera Term などの端末エミュレータのコピペ機能を使っても良いのですが、改行などがあったりすると、コピーした後、改行を削除したりしないといけなくて、めんどうです。

最近の Linux は /usr/bin/vi が vim になっています。vim のコピー&ペーストを使って、編集速度をアップさせたいところです。

この記事では、一つのファイル内での編集について書きます。

複数ファイルを編集する場合はvim で複数ファイル編集なども参考にしていただきたいです。

他のサーバの設定をコピーする場合等には、端末エミュレータのコピペ機能を使う必要があると思います。

vim でのコピペの方法

1行削除して別の場所に貼り付ける方法

  1. まず、esc を押して、移動、削除できるモード(ノーマルモード)にします。ノーマルモードで esc を押しても変なことにはならないので、vi ではわけがわからなくなったら、esc を2、3回叩いてください。
  2. j(下) または k(上) で削除したい行に移動します。ちなみに、hl で左右、jk で下上に移動します。昔、hjklに、カーソルキーがあったから、こうなっているらしいです。
  3. dd を押します。1行削除されます。(1 個目の d は delete、2個目の d は行を表す)
  4. 貼り付けたい行に jk で移動します。
  5. p(小文字) で現在行の後ろに、P(大文字) で現在の前に挿入されます。(p は paste の意味)
  6. 間違った、と思ったら、u を押せば取り消せます。(u は undo の意味)
  7. 同じ行を複数行コピーしたければ、p または、P を押せばよいです。

1行削除せずにコピーして別の場所に貼り付ける方法

  1. まず、esc を押して、移動、削除できるモード(ノーマルモード)にします。
  2. j(下) または k(上) で削除したい行に移動します。ちなみに、hl で左右、jk で下上に移動します。昔、hjklに、カーソルキーがあったから、こうなっているらしいです。
  3. yy を押します。1行削除されます。(1 個目の y は yank、2個目の y は行を表す)
  4. 貼り付けたい行に jk で移動します。
  5. p(小文字) で現在行の後ろに、P(大文字) で現在の前に挿入されます。

2行以上コピー、または、削除して別の場所に貼り付ける方法

ここでは、visual mode を紹介します。私自身、複数行の場合、ほぼ visual model での削除しか使いません。

  1. まず、esc を押して、移動、削除できるモード(ノーマルモード)にします。
  2. j(下) または k(上) で削除したい行に移動します。
  3. V(大文字) を押します。今いる行が白黒反転した状態になるはずです。
  4. j(下) または k(上) で削除したい最終行に移動します。
  5. 削除の場合は d、コピーの場合は y を押します。
  6. 貼り付けたい行に jk で移動します。
  7. p(小文字) で現在行の後ろに、P(大文字) で現在の前に挿入されます。

コピーした後、visual で範囲指定して、p or P すると、その範囲を消してペーストしたりもできます。

行ではなく、行の途中からなど、範囲指定してコピペしたい。

  1. まず、esc を押して、移動、削除できるモード(ノーマルモード)にします。
  2. hjkl でコピー、または、削除したい先頭位置に移動します。
  3. v(小文字) を押します。
  4. hjkl でコピー、または、削除したい最終位置に移動します。
  5. 削除の場合は d、コピーの場合は y を押します。
  6. 貼り付けたい場所に hjkl で移動します。
  7. p(小文字) で現在行の後ろに、P(大文字) で現在の前に挿入されます。

まとめ

  • とにかく esc でノーマルモードに移動します。esc は何回押しても大丈夫です。
  • hjkl で移動します
  • 1行をコピペする場合、dd または yy した後、p または P
  • 範囲を選択してコピペする場合、v または V で visual mode に移り、範囲指定して d または y した後、p または P

1969年生まれ。大学卒業後から15年以上にわたり、通信、カードリーダ、セキュリティ業界においてソフトウェア開発に従事。その後、2012年5月に当社を設立。電力、交通、車載向けの組み込み系システム、旅行業界向けの WEB システム開発、音声合成システム、消防向けのシステム開発等に参画。
低コストかつシンプルで安定稼働するシステムの実現を目指し、アーキテクチャ設計に取り組んでいます。
会社情報と代表者守屋のプロフィール詳細