まえがき

本書を手に取っていただき、ありがとうございます。

本書はVimの良さについて解説した本です。この本を読めばVim初心者でもVimの良さがわかります。Vimの基本操作から便利な機能やプラグイン、プラグインの作り方まで解説してあります。ぜひ最後まで読んでみてください。

本書に込めた思い

Vimを使い始めた当初は使いづらいエディタという印象でした。おそらくVimを触ったことがある方なら一度は思ったことがあるしょう。しかしとある記事*1に出会い、Vimへの印象が180度変わりました。

Vimはこんなことできるのか。と、ただただ驚くばかりでした。もっと早くコーディングできるようになりたい、もっとVimを極めたいという一心でVimにのめり込みました。

気づいたら、vim-jp*4というコミュニティに入り、たくさんのVimmer*5と出会い、ゴリラ.vim*2というイベントを企画するようになり、さくらのナレッジ*3にてVimの連載をするようになりました。

Vimを使い始めてまだ1年程度ですが、Vimの良さをみなさんに伝えるため本書を執筆することを決意しました。筆者が知っているVimの良さをこの本に詰め込みました。Vimに興味ある方、これからVimを始めようとしている方、また中々上達しない方と感じている方はぜひ手元に置いて何度も読んでみてください。

[*1] https://qiita.com/jnchito/items/57ffda5712636a9a1e62

[*2] https://gorillavim.connpass.com/

[*3] https://knowledge.sakura.ad.jp/21687/

[*4] https://vim-jp.org/

[*5] Vimを使う人達の総称

本書で知れること

  • Vimの良さ
  • Vimの知見

対象読者

本書の読者層は次のLevel1 ~ 3を想定しています。なお、レベルはあくまで目安なので必ず 5 に到達しなければいけない、という訳ではありません。

  • Level 1
    1. Vimの操作がまだ不慣れ、最低限の操作しかできない
  • Level 2
    1. Vimの操作に慣れてきて、基本的な編集が一通りできる
    2. Vimの良さをすこしずつ理解してきている
  • Level 3
    1. オペレータ、モーション、テキストオブジェクト、カウントを駆使して編集できる
    2. 簡単なプラグインを作れる
    3. コーディングやメモなどもVimを使っている
  • Level 4
    1. Vimの機能や動作、Vim scriptについて深く知っていて実践できている
  • Level 5
    1. 本体によくパッチを送る
    2. 思考スピードで編集できる

環境

本書では次の環境を元に解説しています。

  • Mac OS Mojave 10.14.5(18F132)
  • Vim 8.1.1949

第1章
Vimの良さ

Vimが誕生して20年以上経ちますが、今でも世界中に多くのユーザが居ます。なぜVimはここまで長く人気が続いているのでしょうか。Vimに限らずユーザが使い続けているということは必ず良さがあるからです。では、Vimの良さは何でしょうか。筆者の考えを端的にまとめると次の通りです。

  1. オペレータ、モーション、テキストオブジェクト、カウンタ、リピート機能を駆使して高速で編集できる
  2. Vim scriptで機能を拡張できる
  3. ヘルプが充実している
  4. 外部コマンドと連携できる

初心者の方はきっとピンと来ないでしょう。大丈夫です。その良さをなるべくわかりやすく解説して行きます。

第2章
Vimの基本操作

本章ではVimでの必要最低限の操作方法を解説していきます。以降、記載がなければノーマルモードでの操作です。モードについては第4章で解説します。

2.1 Vimの画面について

基本操作の前にまずは画面構成から解説します。Vimの画面の主な構成は図2.1のようになっています。構成の詳細は各章にて解説します。

画面構成

図2.1: 画面構成

2.2 ファイルを開く

Vimでファイルを開くときはvimコマンドの引数にファイルを指定します。

Vim起動時にファイルを開く
vim gorilla.txt

Vimの起動後でも次のようにいくつかのExコマンド*1でファイルを開く方法があります。

[*1] コマンドラインモードで実行するコマンドのこと

ファイルを開く
:edit gorilla.txt
ウィンドウ*2を水平分割してファイルを開く
:new gorilla.txt
ウィンドウを垂直分割してファイルを開く
:vnew gorilla.txt

[*2] ウィンドウについては第3章を参照

2.3 入力

文字を入力するときはiコマンド*3で挿入モードに切り替えてから入力を行います。

iGで現在位置にGを入力
# iを押下
Hello orilla

# Gを入力
Hello Gorilla

[*3] ノーマルモードで操作するときに入力する文字のこと

Escで挿入モードからノーマルモードに切り替えることができます。挿入モードでも矢印キーによるカーソル移動は可能ですが、ノーマルモードの方がテキスト編集に特化しているので、基本的に文字入力以外はノーマルモードで操作したほうが効率が良いです。

ただ、必ずカーソル移動はノーマルモードで行う必要はないので、どうしても慣れない方は矢印キーでも良いと思います。

2.4 カーソル移動

Vimには様々な移動コマンドがあります。カーソル移動の速さは編集の速さに直結します。Vimで高速編集できる理由の1つに、カーソル移動のバリエーションの豊富さがあります。では、主な移動コマンドについて解説していきます。

hで左に1文字移動
# 移動前
Hello Gorilla

# 移動後
Hello Gorilla
lで右に1文字移動
# 移動前
Hello Gorilla

# 移動後
Hello Gorilla
jで下に1行移動
# 移動前
Hello Gorilla
I love banana

# 移動後
Hello Gorilla
I love banana
kで上に1行移動
# 移動前
Hello Gorilla
I love banana

# 移動後
Hello Gorilla
I love banana
wで次の単語の先頭に移動
# 移動前
Hello Gorilla

# 移動後
Hello Gorilla
bで前の単語の先頭に移動
# 移動前
Hello Gorilla

# 移動後
Hello Gorilla
eで単語の最後尾に移動
# 移動前
Hello Gorilla

# 移動後
Hello Gorilla
geで前の単語の最後尾に移動
# 移動前
Hello Gorilla

# 移動後
Hello Gorilla
^で行頭の非空白文字に移動
# 移動前
Hello Gorilla

# 移動後
Hello Gorilla
$で行尾に移動
# 移動前
Hello Gorilla

# 移動後
Hello Gorilla
Gでファイルの最終行頭に移動
# 移動前
Hello Gorilla
I love banana
Do you love banana?

# 移動後
Hello Gorilla
I love banana
Do you love banana?
ggでファイルの先頭に移動
# 移動前
Hello Gorilla
I love banana
Do you love banana?

# 移動後
Hello Gorilla
I love banana
Do you love banana?
{count}Gで{count}行目に移動する
# 移動前
Hello Gorilla
I love banana
Do you love banana?

# 2Gで2行目に移動
Hello Gorilla
I love banana
Do you love banana?
試し読みはここまでです。
この続きは、製品版でお楽しみください。