とりあえずvimを使えるようになりたい人のための記事
始めに
私が「Vimはいいぞ」って言っていると、「どうやって始めたらいいですか?」という質問がたまにあります。
今回はそんな人に向けて、「Vimの始め方指南書」になったらよいなと思って書いていきます。
上記のVimmerレベルをベースに紹介していきます。
目標
- Vimの流儀に沿った操作方法を覚える
- InsertModeでカーソル移動しない
 - カーソル移動はNormalModeで行う
 - カーソルキーは使わず、代わりにh/j/k/lを使う
 
 - 
.vimrcを作成する- 最低限の
.vimrcを作成して、ちょっと快適に操作できるようになる 
 - 最低限の
 - プラグインのインストールを次のステップとして視野に入れる
- あくまでも視野に入れるだけ、プラグインのインストールはしない
 
 
非目標
- Vim使いこなせるようになる
- この記事でそこまで誘導することは目標ではない
 
 - プラグインをインストールする
- 目標でも記載しているが、プラグインのインストールはしない
 
 - Vimをビルドする
- vim-jpで記事の内容について相談したら、やたらビルドする方法を教えたがる人が寄ってきました
 - 普段からビルドしなれている人は、きっと普通にVimが使えているものとしてスルー
 - 仮に使えないようなら、この記事の内容をこっそり実践してみてね
 
 
対象とする読者
- Vimを始めたい人
- 「なんとなく使えればよい」、というより、「ちゃんと使えるようになりたい」と思う人
 
 - Vimがいいと聞いているけど、いまいち使えている感覚になっていない人
- とりあえず
:wqで保存、:q!で保存しないで終了、くらいが分かっている人 - Vimmerレベル1と2の間くらい
 
 - とりあえず
 - 黒い画面でカタカタしながら、キーボードだけで操作できるようになりたい人
- よ う こ そ
 
 
Step.1 ちゃんとVimをインストールする
「Vimを使えるようになりたい」
そう言いながら、ちゃんとVimをインストールしていなかったり、サーバーに入っているvi互換バージョンを使用している可能性があります。
Vimを使いたいなら最新のVimを使いましょう。
最新であれば、セキュリティパッチが適応されていたり、便利な機能が盛り込まれていたりします。
業務で使用するVimが、最新のVimでなければ、頑張って申請してみましょう。
セキュリティ的に安全という言葉は、十分に交渉材料として役立つでしょう。
現在のVim開発体制について、VimConf2023 TinyでKen Takata氏より発表があります。
上記のリンク先のスライドを見て貰えれば、最新のVimがセキュリティ的に安全であるということの証明になります。
Linux
Vimを使うなら最高の環境です。
インストール方法は書くまでも無いと思っていますが、一応。
# Ubuntu or Debian
sudo apt install vim
# RHEL
sudo dnf install vim
黒い画面ことターミナルエミュレータは、各ディストロにてデフォルトでインストールされている物を使用すれば大丈夫だと思います。
Mac
MacにはVimがプリインストールされていますが、バージョンが古いです。
正しく、Vimをインストールしましょう。
Macなら大抵はHomebrewを使っていると思われるので、コマンドだけ貼っておきます。
brew install vim
Macを使っている方のターミナルエミュレータは、よくiTerm2という物を利用されている気がしています。
こちらを使用すれば問題無いと思っています。
Windows
Windows11では、デフォルトでwingetというコマンドがあるためCUIからインストールできます。
winget install Vim.Vim
それ以前のWindowsをお使いでしたら、次のリンク先でインストーラーをダウンロードできます。
ダウンロード後は、ポチポチしてインストールしてください。
ここで「Windows消せ」などという無粋なことは言いませんよ…?
また黒い画面として、cmd.exeを使用するのは、個人的には推奨していません。
使用するならWindows Terminalがよいでしょう。
Step.2 日常のちょっとした編集にVimを取り入れる
 vimtutor
Vimを始めるなら最初はvimtutorというコマンドで、指示に従いながらVim上で操作することにより学習できます。
ですが大半の人は、わざわざ最初からvimtutorをまじめに完了させてから、Vimを使い出していないと思っています。
これは私も同じです。
私の場合は、Vimのキーマップのチートシートを片手に操作を覚えていきました。
vimtutorの実施はお好みでお任せします。
理想としては、どこかのタイミングで実施したらよいと思っていますが、タイミングは各自にお任せします。
必要と感じたら実施するとよいでしょう。
これからVimを覚えたい人は、次の章で解説する方法を実践してみてください。
提案
- これから紹介するキーマップを意識しないで操作できるようになる
 - ターミナルエミュレータ(黒い画面)で操作する
 - 一日の内に遭遇する小さなテキスト編集でVimを使用する
 - 絶対にInsertModeでカーソルキーを使って移動しない
 - カーソルを移動したかったら必ずNormalModeに変更する
 - 疲れたらいつものエディタに戻ってもよいが、次の日に1回はVimを使う
 
特に上記の項番の4と5を口ずさみながら操作すると Very Good! です。
とにかく伝えたいのは、繰り返しVimの操作を反復することで、Vimの基礎的なキーマップが咄嗟に出てくるようになると、Vimの良さが分かるはずです。
キーマップ
特別に凝った操作はできるようになろうと思わなくて大丈夫です。
次のコマンドを日常的に使えるようになれば、基本的には困りません。
| Mode | Key | Description | 
|---|---|---|
| Normal / Visual | h | 
左にカーソルを移動する | 
| Normal / Visual | j | 
下にカーソルを移動する | 
| Normal / Visual | k | 
上にカーソルを移動する | 
| Normal / Visual | l | 
右にカーソルを移動する | 
| Normal / Visual | w | 
現在のカーソル位置から見て次の単語の先頭にジャンプする | 
| Normal / Visual | e | 
現在のカーソル位置から見て次の単語の末尾にジャンプする | 
| Normal / Visual | b | 
現在のカーソル位置から見て前の単語の先頭にジャンプする | 
| Normal / Visual | gg | 
ファイルの1行目に移動する | 
| Normal / Visual | G | 
ファイルの最終行に移動 | 
| Normal / Visual | [num]gg | 
入力した数字の行番号に移動する | 
| Normal | v | 
現在のカーソル位置から文字単位選択できるVisualModeに入る | 
| Normal | V | 
現在のカーソル位置から行単位選択できるVisualModeに入る | 
| Normal | Ctrl-v | 
現在のカーソル位置から矩形選択できるVisualModeに入る | 
| Mode内の操作に関しては、文字単位選択のVisualModeと同じ | ||
| Normal | i | 
現在のカーソル位置の前からInsertModeに入る | 
| Normal | I | 
現在のカーソル位置の行頭に移動してInsertModeに入る | 
| Normal | a | 
現在のカーソル位置の後ろからInsertModeに入る | 
| Normal | A | 
現在のカーソル位置の行末に移動してInsertModeに入る | 
| Normal | o | 
現在のカーソル位置から下に改行してInsertModeに入る | 
| Normal | O | 
現在のカーソル位置から上に改行してInsertModeに入る | 
| Normal | yy | 
現在のカーソル行をヤンク(コピー)する | 
| Normal | dd | 
現在のカーソル行を削除する | 
| Visual | y | 
選択範囲をヤンク(コピー)する | 
| Visual | d | 
選択範囲を削除する | 
| Visual | c | 
選択範囲を削除してInsertModeに入る | 
| Normal | p | 
Vim内で削除・ヤンク(コピー)した物を、カーソル位置の後に挿入する | 
| 行そのもの削除・ヤンク(コピー)したのであれば、下の行に挿入する | ||
| Normal | P | 
Vim内で削除・ヤンク(コピー)した物を、カーソル位置の前に挿入する | 
| 行そのもの削除・ヤンク(コピー)したのであれば、上の行に挿入する | ||
| NormalMode以外共通 | ESC | 
NormalModeに戻る | 
ここでは敢て削除・ヤンク(コピー)の操作に関しては、VisualModeを内で操作することをお勧めします。
これらの操作はオペレータという物になりますが、最初の内は簡単な操作に限定しておくとよいです。
また、テキストオブジェクトというお勧めしたい操作方法があります。
しかし、最初の内は難しいと思うので今回は紹介を省きました。
vimtutorの中で紹介されると思いますが、慣れるまではVisualModeを介して操作することをお勧めします。
そして、どこの入門でもいわれる鉄則みたいなルールですが、困ったらESCでNormalModeに戻りましょう。
NormalModeこそがVimのあるべき姿 であり、 戻るべきMode なのです。
Step.2.5 vimtutor
この辺で一度はvimtutorコマンドを使っておきましょう。
# Linux or Mac
vimtutor ja
# Windows
vimtutor -console ja
jaを引数に含めておくことで、日本語版のvimtutorが起動します。
Windowsの場合は、-consoleを付けないとgvimというGUI版が起動するようです。
GUI版は今回の記事のコンセプトから外れるため、-consoleオプションを付けて黒い画面でVimしましょう。
ここで「Windows消せ」などという(ry
 Step.3 .vimrcを作成してみる
おそらく、ここに到達するまでにvimtutorを実施しているものとします。
さて、ここまででVimの操作をしながら、いろいろな不満を覚えているはずです。
次のような不満点が生れているはずです。
- 行番号が無い
 - カーソル移動するために、NormalModeに戻るのが面倒になる
 - 保存するのが面倒
 - 言語毎にインデントの設定をしたい
 
起動したときにある程度の設定が適用されるための.vimrcを作成しましょう。
.vimrcを作成する場合、次の場所に作成、もしくは配置してください。
- Linux or Mac
~/.vimrc~/.vim/vimrc
 - Windows
%USERPROFILE%\_vimrc%USERPROFILE%\_vimfiles\vimrc
 
一応、私が使用している最小設定の.vimrcがあるため、こちらも共有しておきます。
…これが最小?
いや、あなたも.vimrcを作成していけば、これが最小設定であることに納得できるはずです。
Vim scriptとvim help
.vimrcにはVim scriptを記述する必要があります。
Vim scriptの解説は内蔵されたhelpがあるので、そちらを参照してください。
vim内でヘルプを見る場合は、:h <help-tag>でヘルプが開けます。
設定項目についてのhelpは次のコマンドで開けます。
:h options
:h option-summary
おっと、最初の時点では、helpが英語で読むのが大変と思いますよね。
そこでvim-jpでは、helpの日本語化をコミュニティで対応しています。
こちらの日本語helpは、プラグインとしても配布されています。
.vimrcを作成したあなたは、次のステップとして日本語ヘルプを導入してみましょう!
蛇足?
help検索をお手軽にする方法として、手前味噌ですがddu.vimを使用するヘルプ検索を紹介したことがあります。
やる気があるようなら、こちらも試してみるとよいでしょう…(沼)
最後に
実際に職場や会社内のLTでも「Vimはいいぞ」って言ってきた身なので、ちゃんとした入門記事を書けて良かったなと思っています。
この記事を書きながら、Neovimの設定ばっかりだったのが、.vimrcに触れる切っ掛けとなったので、記事の執筆駆動で振り替えるのはよいですね。
Vimと合わせて使うターミナルエミュレータについての記事も必要な気がしてきたので、近い内に書こうと思います。
それでもVimを使うなら、やはりLinux。
Linuxがすべてを解決する!
ここで「Windows消せ」など(ry
Discussion