🔰

とりあえずvimを使えるようになりたい人のための記事

2024/04/17に公開

始めに

私が「Vimはいいぞ」って言っていると、「どうやって始めたらいいですか?」という質問がたまにあります。
今回はそんな人に向けて、「Vimの始め方指南書」になったらよいなと思って書いていきます。

https://scrapbox.io/vim-jp/Vimmerのレベル10

上記のVimmerレベルをベースに紹介していきます。

目標

  1. Vimの流儀に沿った操作方法を覚える
    • InsertModeでカーソル移動しない
    • カーソル移動はNormalModeで行う
    • カーソルキーは使わず、代わりにh/j/k/lを使う
  2. .vimrcを作成する
    • 最低限の.vimrcを作成して、ちょっと快適に操作できるようになる
  3. プラグインのインストールを次のステップとして視野に入れる
    • あくまでも視野に入れるだけ、プラグインのインストールはしない

非目標

  1. Vim使いこなせるようになる
    • この記事でそこまで誘導することは目標ではない
  2. プラグインをインストールする
    • 目標でも記載しているが、プラグインのインストールはしない
  3. Vimをビルドする
    • vim-jpで記事の内容について相談したら、やたらビルドする方法を教えたがる人が寄ってきました
    • 普段からビルドしなれている人は、きっと普通にVimが使えているものとしてスルー
    • 仮に使えないようなら、この記事の内容をこっそり実践してみてね

対象とする読者

  1. Vimを始めたい人
    • なんとなく使えればよい」、というより、「ちゃんと使えるようになりたい」と思う人
  2. Vimがいいと聞いているけど、いまいち使えている感覚になっていない人
  3. 黒い画面でカタカタしながら、キーボードだけで操作できるようになりたい人
    • よ う こ そ

Step.1 ちゃんとVimをインストールする

「Vimを使えるようになりたい」
そう言いながら、ちゃんとVimをインストールしていなかったり、サーバーに入っているvi互換バージョンを使用している可能性があります。
Vimを使いたいなら最新のVimを使いましょう。

最新であれば、セキュリティパッチが適応されていたり、便利な機能が盛り込まれていたりします。
業務で使用するVimが、最新のVimでなければ、頑張って申請してみましょう。
セキュリティ的に安全という言葉は、十分に交渉材料として役立つでしょう。
現在のVim開発体制について、VimConf2023 TinyでKen Takata氏より発表があります。

https://github.com/k-takata/zenn-contents/blob/master/articles/files/vimconf2023_takata_lt.pdf

上記のリンク先のスライドを見て貰えれば、最新の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という物を利用されている気がしています。

https://iterm2.com/

こちらを使用すれば問題無いと思っています。

Windows

Windows11では、デフォルトでwingetというコマンドがあるためCUIからインストールできます。

winget install Vim.Vim

それ以前のWindowsをお使いでしたら、次のリンク先でインストーラーをダウンロードできます。

https://github.com/vim/vim-win32-installer/releases

ダウンロード後は、ポチポチしてインストールしてください。

ここで「Windows消せ」などという無粋なことは言いませんよ…?

また黒い画面として、cmd.exeを使用するのは、個人的には推奨していません。
使用するならWindows Terminalがよいでしょう。

https://apps.microsoft.com/detail/9n0dx20hk701?hl=ja-jp&gl=JP

どうやら最新ならデフォルトでインストールされているらしい?

Step.2 日常のちょっとした編集にVimを取り入れる

vimtutor

Vimを始めるなら最初はvimtutorというコマンドで、指示に従いながらVim上で操作することにより学習できます。
ですが大半の人は、わざわざ最初からvimtutorをまじめに完了させてから、Vimを使い出していないと思っています。
これは私も同じです。
私の場合は、Vimのキーマップのチートシートを片手に操作を覚えていきました。

vimtutorの実施はお好みでお任せします。
理想としては、どこかのタイミングで実施したらよいと思っていますが、タイミングは各自にお任せします。
必要と感じたら実施するとよいでしょう。

これからVimを覚えたい人は、次の章で解説する方法を実践してみてください。

提案

  1. これから紹介するキーマップを意識しないで操作できるようになる
  2. ターミナルエミュレータ(黒い画面)で操作する
  3. 一日の内に遭遇する小さなテキスト編集でVimを使用する
  4. 絶対にInsertModeでカーソルキーを使って移動しない
  5. カーソルを移動したかったら必ずNormalModeに変更する
  6. 疲れたらいつものエディタに戻ってもよいが、次の日に1回はVimを使う

特に上記の項番の45を口ずさみながら操作すると 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があるため、こちらも共有しておきます。

https://github.com/yasunori0418/dotfiles/blob/0fb4280199581af9a0b19cdea9f8c61a54f89c03/home/.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の日本語化をコミュニティで対応しています。

https://vim-jp.org/vimdoc-ja/

こちらの日本語helpは、プラグインとしても配布されています。

https://github.com/vim-jp/vimdoc-ja

.vimrcを作成したあなたは、次のステップとして日本語ヘルプを導入してみましょう!

蛇足?

help検索をお手軽にする方法として、手前味噌ですがddu.vimを使用するヘルプ検索を紹介したことがあります。

https://zenn.dev/vim_jp/articles/0005-search_help_with_ddu

やる気があるようなら、こちらも試してみるとよいでしょう…(沼)

最後に

実際に職場や会社内のLTでも「Vimはいいぞ」って言ってきた身なので、ちゃんとした入門記事を書けて良かったなと思っています。

この記事を書きながら、Neovimの設定ばっかりだったのが、.vimrcに触れる切っ掛けとなったので、記事の執筆駆動で振り替えるのはよいですね。
Vimと合わせて使うターミナルエミュレータについての記事も必要な気がしてきたので、近い内に書こうと思います。

それでもVimを使うなら、やはりLinux。
Linuxがすべてを解決する!

ここで「Windows消せ」など(ry

GitHubで編集を提案

Discussion