Vimの使い方入門

概要

vimの使い方について説明する。vimはできるだけマウスの操作なしでファイルを編集するために開発された。故に機能が豊富であるため、少しずつ習得していこう。

環境

macOS Mojave 10.14.6
vim 8.1

入門(チュートリアル

vimの世界について説明する。vimには色々な世界がある。インサートモード(表の世界)、コマンドモード(裏の世界)、ビジュアルモード、、、。しかし、最初のうちは裏の世界と表の世界さえ知っていれば問題ない。裏の世界ではコマンドが発動でき、表の世界では文字が入力できる。これさえ覚えておけばよい。それでは、実際に使ってみよう。

まずは下記コマンドを実行しsample.txtを編集する。

$ vim sample.txt

これでsample.txtを編集できる。sample.txtが存在しなければ生成される。このコマンドが実行されると裏の世界へと迷いこんでしまう。なので文字は入力できない。そこで表の世界へ移動するコマンドiを実行する。そうすると表の世界へ移動し文字が入力できるようになる。てきとうに文字を入力してみる。次にsample.txtを保存する。保存するためにEscキーを押し、裏の世界に移動する。その後、:wと入力し、Enterを押すとファイルが保存される。さらに:qと入力しEnterを押すと編集が終了する。:wqとすると保存しつつ編集を終了させることができる。これでチュートリアル終わり。

簡単にまとめる

表の世界:文字が入力できる。Escキーで裏の世界へ移動。
裏の世界:コマンドが実行できる。iで表の世界へ移動。:wqで保存、終了する。

この操作に慣れてきたらStep1へ進もう

趣味の範囲です 見た目をきれいに

必須ではないがこちらの記事を参考にして~/.vimrcを作成することをおすすめする。~/.vimrcを作成し、記事中の同様のファイルをコピペするだけでよい。これによってこれからの作業が格段にしやすくなる。

Step1 素早く移動

表の世界と裏の世界への行き来に慣れてきたら次のステップへ。ここからは裏の世界(コマンドモード)で発動できる便利なコマンドを少しずつ覚えていく。今回はgg, G, o, Aの4つのコマンドを紹介する。それでは、escコマンドで裏の世界へ!

  • gg:ファイルの最初へ移動 (lessコマンドでも使える)
  • G:ファイルの最後へ移動 (lessコマンドでも使える)
  • o:カーソルのある行の次の行に空白を挿入し、表の世界へ
  • A:カーソルのある行末へ移動し、表の世界へ

Step2 楽々コピー&削除

今回はyy, p, ddの3つのコマンドについて説明する。

  • yy:カーソルのある行をヤンクする(コピーみたいなもの)
  • p:カーソルのある次の行にヤンクした文字を挿入する。
  • dd:カーソルのある行を削除する(削除された文字やヤンクされる)

ここで注意なのが、ヤンクはコピーではないのでクリップボードへ保存はされない。つまり、今編集しているファイル内でしかコピー&ペーストすることができない。よって、ファイル内の文字をワードやパワポにペーストすることができない。ヤンクとクリップボードを対応させたいという方は Updatae vimへ。

Step3 あ!間違えちゃった!という時に

今回はu, Ctr + rの2つのコマンドを紹介する。これらをマスターすれば、この世界から失敗という文字はなくなります。

  • u:一つ前にした操作を元に戻すことができる。Ctr + zと同じである。
  • Ctr + ruコマンドの取り消し

Step4 便利!ファイル内検索方法

今回はファイル内で文字列を検索する方法を紹介する。ファイルを見ている時に、orangeってどこかに書いてあったはずなんだけどどこだっけ?となったときに非常に便利である。そのファイル内でorangeと書いてある部分をコンピュータが勝手に探してくれる。それではさっそくやってみよう!

  • / : /orangeでファイル内のorangeを探してくれる。
  • n/orangeで検索した後に、2番目に出てくるorangeを探したい時は続けてnと入力すると次のorangeを探してくれる。
  • Nnとは逆に、ひとつ前のorangeを探してくれる。

これらが便利なのは、vimだけではなくlessでも使えること!便利です。

Step5 細かな移動

今回は^, $, Ctr + d, Ctr + uの2つの移動するコマンドについて紹介する。

  • ^:カーソルのある行の最初へ移動
  • $:カーソルのある行末へ移動
  • Ctr + d:カーソルを30行下へ移動
  • Ctr + u:カーソルを30行上へ移動

Step6 これはもう麻薬レベル

今回は矢印キー⬆️,⬇️,➡️,⬅️の代わりとなるコマンドを紹介する。慣れるまでは時間がかかりますが、慣れてしまうとあなたはvimなしでは生きていけなくなりいます。

  • j:下へ1つ移動。矢印キー⬇️と同じ。
  • k:上へ1つ移動。矢印キー⬆️と同じ。
  • l:右へ1つ移動。矢印キー➡️と同じ。
  • h:左へ1つ移動。矢印キー⬅️と同じ。

この4つのコマンドは全て右手のみで操作することが可能。

Step7 同じ操作を連続で!

記録する方法。あまり使いませんが、使えると便利なときがあります。ここまでくると、みなさんはある程度コマンドが使えるようになってきていると思います。そんなコマンドを組み合わせたり、同じ文字を連続で打ったりすることができるようになります。

  1. qaコマンドで記録開始!
  2. 何かしらの操作を行う
  3. qコマンドで記録終了! 4 `@a'コマンドで記録した操作を実行

Step8 ビジュアルモードの世界へようこそ

ここでは新しい世界、ビジュアルモードについて説明する。非常に便利である。ビジュアルモードでは部分選択が可能となる。あなたはこんな疑問を持ったことはないだろうか。「yyddでカーソルのある行をヤンク、削除できるけど、部分的にヤンク、削除できたら便利なのに」。まさしくこの疑問に答えてくれるのがビジュアルモードである。ではさっそくビジュアルモードの世界へ移動してみよう。

ビジュアルモード

コマンドモードでコマンドvを発動することでビジュアルモードへ移動できる。それではさっそく部分的に文字を切り取ってみよう。まずは、切り取りたい文字の先端にカーソルを移動させ、ビジュアルモードへ移行する。その後、切り取りたい文字の末端へ移動してdコマンドを発動すると削除できる。ビジュアルモードでは移動

工事中

短形ビジュアルモード

工事中