端末エミュレータでコピペするのはめんどうでは?
Linux サーバを管理する時、vi (vim) を使わないといけないことが多いと思います。nano がインストールされたりしていることもありますが、nano もそれほど使いやすいと思えません。
Tera Term などの端末エミュレータのコピペ機能を使っても良いのですが、改行などがあったりすると、コピーした後、改行を削除したりしないといけなくて、めんどうです。
最近の Linux は /usr/bin/vi が vim になっています。vim のコピー&ペーストを使って、編集速度をアップさせたいところです。
この記事では、一つのファイル内での編集について書きます。
複数ファイルを編集する場合はvim で複数ファイル編集なども参考にしていただきたいです。
他のサーバの設定をコピーする場合等には、端末エミュレータのコピペ機能を使う必要があると思います。
vim でのコピペの方法
1行削除して別の場所に貼り付ける方法
- まず、esc を押して、移動、削除できるモード(ノーマルモード)にします。ノーマルモードで esc を押しても変なことにはならないので、vi ではわけがわからなくなったら、esc を2、3回叩いてください。
- j(下) または k(上) で削除したい行に移動します。ちなみに、hl で左右、jk で下上に移動します。昔、hjklに、カーソルキーがあったから、こうなっているらしいです。
- dd を押します。1行削除されます。(1 個目の d は delete、2個目の d は行を表す)
- 貼り付けたい行に jk で移動します。
- p(小文字) で現在行の後ろに、P(大文字) で現在の前に挿入されます。(p は paste の意味)
- 間違った、と思ったら、u を押せば取り消せます。(u は undo の意味)
- 同じ行を複数行コピーしたければ、p または、P を押せばよいです。
1行削除せずにコピーして別の場所に貼り付ける方法
- まず、esc を押して、移動、削除できるモード(ノーマルモード)にします。
- j(下) または k(上) で削除したい行に移動します。ちなみに、hl で左右、jk で下上に移動します。昔、hjklに、カーソルキーがあったから、こうなっているらしいです。
- yy を押します。1行削除されます。(1 個目の y は yank、2個目の y は行を表す)
- 貼り付けたい行に jk で移動します。
- p(小文字) で現在行の後ろに、P(大文字) で現在の前に挿入されます。
2行以上コピー、または、削除して別の場所に貼り付ける方法
ここでは、visual mode を紹介します。私自身、複数行の場合、ほぼ visual model での削除しか使いません。
- まず、esc を押して、移動、削除できるモード(ノーマルモード)にします。
- j(下) または k(上) で削除したい行に移動します。
- V(大文字) を押します。今いる行が白黒反転した状態になるはずです。
- j(下) または k(上) で削除したい最終行に移動します。
- 削除の場合は d、コピーの場合は y を押します。
- 貼り付けたい行に jk で移動します。
- p(小文字) で現在行の後ろに、P(大文字) で現在の前に挿入されます。
コピーした後、visual で範囲指定して、p or P すると、その範囲を消してペーストしたりもできます。
行ではなく、行の途中からなど、範囲指定してコピペしたい。
- まず、esc を押して、移動、削除できるモード(ノーマルモード)にします。
- hjkl でコピー、または、削除したい先頭位置に移動します。
- v(小文字) を押します。
- hjkl でコピー、または、削除したい最終位置に移動します。
- 削除の場合は d、コピーの場合は y を押します。
- 貼り付けたい場所に hjkl で移動します。
- p(小文字) で現在行の後ろに、P(大文字) で現在の前に挿入されます。
まとめ
- とにかく esc でノーマルモードに移動します。esc は何回押しても大丈夫です。
- hjkl で移動します
- 1行をコピペする場合、dd または yy した後、p または P
- 範囲を選択してコピペする場合、v または V で visual mode に移り、範囲指定して d または y した後、p または P