← Vim研究所

なぜVimmerはVimを使い続けるのか

2026-08-03 公開 ・ 更新: 2026-09-03

高機能なIDEやAIアシスタント付きエディタが当たり前になった今でも、Vimを選び続ける人がいます。「なんで今どき黒い画面で編集してるの」と聞かれたとき、うまく説明できずに困った経験があるVimmerは多いはずです。ここでは、よく挙がる理由を1つずつ取り上げ、手元で測れるものは実際に測った数字を添えて整理します。

検証環境:macOS 26.4.1に同梱のVim 9.1(patches 1-1752)と、Homebrewで入れたNeovim 0.12.4です。打鍵数はtmuxの中の本物のVimにキーを1つずつ送って数えました。Linuxの同梱状況は手元に環境が無いので確かめておらず、POSIXの仕様書を読んだところまでが根拠です。

目次(8項目)

1. モード切り替えによる操作の圧縮

ノーマルモードとインサートモードを切り替えながら編集するVimの操作体系は、最初はとっつきにくく感じます。しかし慣れると、1〜2文字のキー操作で「削除して差し替える」「単語単位で移動する」といった複合的な編集が完結します。マウスに手を伸ばす動作や、Shift+矢印キーでの範囲選択のような複数キーの同時押しがほとんど不要になります。

この「圧縮」がどれくらいのものかは、打鍵数を数えれば数字になります。let msg = "hello";という1行を用意し、カーソルを行頭に置いた状態からhelloworldへ書き換える編集を3通りで実行しました。Shiftとの同時押しは1打鍵として数え、最後にEscで戻るところまで含めています。

やり方1行を直す同じ行が10行あるとき
ノーマルモードのci"9打鍵36打鍵
置換コマンド16打鍵18打鍵
矢印キーとShift選択21打鍵229打鍵

Vimの9打鍵はci"で引用符の中身を消し、worldの5文字を入れてEscで抜けるだけです。カーソルが行頭にあってもci"が同じ行の引用符を探しに行くので、位置まで運ぶ操作が要りません。矢印キー側の21打鍵は、Right11回、ShiftRight4回、5文字の入力、Escという内訳です。

10行に増やすと差の付き方が変わります。矢印キーのやり方は同じ手順を10回繰り返すので229打鍵まで膨らみますが、Vimでは直前の編集を繰り返すドットコマンドがあるので2行目以降はj0.の3打鍵で済み、合計36打鍵です。:substituteコマンド:%s/hello/world/gと書けば、行数がいくつでも18打鍵のまま変わりません。

2. ホームポジションを崩さない設計

hjklによる移動は、最初は矢印キーのほうが直感的に感じる人が多いです。しかし、キーボードのホームポジションから指を動かさずに済むという設計は、長時間のコーディングで確実に効いてきます。マウスと文字入力を行き来する動作が減るほど、思考が途切れにくくなります。

この主張も、さきほどの実測を分解すると数字になります。10行を直したときの打鍵を「指を運ぶための打鍵」と「文字を入れるための打鍵」に分けると、矢印キー方式の229打鍵のうち実際に文字を入力していたのは50打鍵だけでした。

内訳矢印キー方式Vimのドット方式
移動・選択のキー169打鍵18打鍵
文字の入力50打鍵5打鍵
編集の指示・モード抜け10打鍵13打鍵
合計229打鍵36打鍵

矢印キー側の169打鍵はHome10回、Right110回、ShiftRight40回、Down9回で、指はホームポジションの外にほぼ居続けます。Vim側の18打鍵はj0を9回ずつ打っただけです。

ただし、この表が示しているのは回数だけです。hjklが矢印キーより速いかどうかは測っていませんし、1打鍵にかかる時間は人によって変わります。手順の選び方でも差は縮みます。単語単位の移動やマルチカーソルを使えば矢印キー側の打鍵数はぐっと減るので、この表の差がそのまま実力差になるわけではありません。手の移動距離が短いという利点が編集時間の何秒にあたるかまでは、この数え方では出せません。

要点:打鍵数の差は、同じ編集を繰り返す回数が増えるほど開きます。1行なら9対21ですが、10行に広げると36対229になりました。

3. どこにでも入っていて、すぐ立ち上がる

Vimの強みとしていちばんよく挙がるのが「どこにでも入っている」という点です。この記事を書いているmacOS 26.4.1では、何も足さずに/usr/bin/vimが置かれていて、バージョンはVim 9.1(patches 1-1752)でした。/usr/bin/vi/usr/bin/viewは同じ実行ファイルへのリンクです。

$ ls -l /usr/bin/vi /usr/bin/vim
lrwxr-xr-x  1 root  wheel        3  4月  6 17:10 /usr/bin/vi -> vim
-rwxr-xr-x  1 root  wheel  5651232  4月  6 17:10 /usr/bin/vim

$ /usr/bin/vim --version | head -2
VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Feb 21 2026 19:49:52)
macOS version - arm64

Unix系OS全般ではどうかというと、根拠はPOSIXの仕様です。The Open Group Base Specifications Issue 8のviの項(IEEE Std 1003.1-2024)にviは規定されていますが、見出しに[UP]という印が付いていて無条件の必須ではありません。

This utility shall be provided on systems that both support the User Portability Utilities option and define the POSIX2_CHAR_TERM symbol. On other systems it is optional.

「User Portability Utilitiesオプションに対応し、かつPOSIX2_CHAR_TERMを定義するシステムでは必ず提供される。それ以外では任意」という条件付きです。「どんなUnixにも必ずある」と言い切るのは、仕様より強い主張になります。

もう1つの裏付けとして、多くのツールが既定のエディタにviを選んでいます。EDITORVISUALを外してGitに聞くと、そのまま返ってきます。

$ env -u EDITOR -u VISUAL git var GIT_EDITOR
vi

man git-varにも、優先順位はGIT_EDITORcore.editorVISUALEDITORの順で、最後のコンパイル時の既定は通常viだと書かれています。素のサーバーでgit commitを打つとVimが開くのは、この順番の結果です。

SSHの先で使う道具としては、起動の速さもテンポに直結します。同じmacOSで、開いてすぐ閉じる起動を20回繰り返した平均を5回取り、その中央値が次の値です。

起動のしかた1回あたり5回の範囲
Vim(設定を読まない)18.7ms18.1〜20.1ms
Vim(設定ファイル無しの既定)23.4ms21.4〜24.1ms
Vim(31行の設定ファイルあり)29.9ms26.8〜35.0ms
Neovim(設定を読まない)35.9ms34.2〜42.7ms
Neovim(設定ファイル無しの既定)44.9ms44.1〜47.2ms

プラグインを積めばこの数字は伸びますが、素の状態ならどれも50ミリ秒を切ります。なおVimとNeovimの違いに関わる点として、Neovimはこの環境ではHomebrewで入れたもので、macOSには同梱されていません。

GUIが要らないことも、この用途では効きます。macOS同梱の/usr/bin/vimvim --versionが「Normal version without GUI」と表示するビルドで、端末だけで完結します。VPSとSSHで同じVim環境を持ち歩く運用が成り立つのも、この性質があってのことです。

4. カスタマイズ性と拡張性

設定ファイル1つで動作を細かく制御でき、プラグインエコシステムも活発に更新され続けています。kickstart.nvimやLazyVimのような配布設定から始めれば、ゼロから作らなくても自分好みの環境に育てていけます。この「自分だけの道具に育てる」感覚が、他のエディタにはない愛着を生んでいる面もあります。

「設定が持ち運べる」という部分は実際に確かめられます。31行・571バイトの設定ファイルを、まっさらなホームディレクトリに.vimrcとして置いただけの状態でVimを起動しました。

# 空のホームディレクトリを作り、設定ファイルを1つだけ置いて起動する
mkdir -p /tmp/fakehome
cp vimrc_sample /tmp/fakehome/.vimrc
HOME=/tmp/fakehome vim a.txt

# 起動後に :set shiftwidth? expandtab? relativenumber? ignorecase? を実行した結果
  shiftwidth=4
  expandtab
  relativenumber
  ignorecase

プラグインを1つも入れず、ファイルを1つ置いただけで、インデント幅も行番号の出し方も検索の大文字小文字の扱いも移りました。Vimが設定ファイルを探す場所はvim --versionの末尾に並んでいます。

   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
 3rd user vimrc file: "~/.config/vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"

プラグインやシンタックス定義の置き場を決めているのがruntimepathです。設定を読まずに起動したVimでも、値の先頭は~/.vim、末尾は~/.vim/afterになっていて、標準のファイルを上書きする場所が前後に用意されています。

runtimepath=~/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim91,/usr/share/vim/vimfiles/after,~/.vim/after

ランタイムパスの確認方法を知っておくと、プラグインが読まれないときに最初に見る場所が決まります。置き場がホームディレクトリの下で完結するので、scp.vimrc~/.vimを送れば済みます。

5. 少数派であること自体が理由になることもある

VS Codeのような主流エディタと比べれば、Vimユーザーは今も少数派です。しかし、その独特な操作体系を使いこなせること自体が、一種のスキルとして機能する場面もあります。周囲と違う道具を選ぶことへの抵抗が少ない人ほど、Vimの学習コストを乗り越えやすいのかもしれません。

ここまでの節と違って、この話には手元で測れる裏付けがありません。エディタのシェアを調べた統計はありますが、自分で確かめた数字ではないので根拠には並べません。

Vimが向いていない場面もある

公平に言えば、GUI操作前提のツールや、画面共有を中心にした共同作業では、Vimの操作体系が必ずしも有利に働くわけではありません。万能の道具ではなく、テキスト編集の速度と汎用性を最優先したいときに強みが出る道具、と捉えるのが正確です。

学習コストも、ある程度は確かめられます。端末でvimtutorと打つと練習用のチュートリアルが開き、日本語のロケールなら日本語版(/usr/share/vim/vim91/tutor/tutor1.jaのVersion 1.7)が選ばれます。冒頭に所要時間が書いてあります。

     チュートリアルを完了するのに必要な時間は、覚えたコマンドを試すのにどれだ
     け時間を使うのかにもよりますが、およそ30分です。

30分で終わるのは、あくまでこのチュートリアルの範囲です。vimtutorと:Tutorの使い方を一周すればモード・移動・削除・保存までは分かりますが、「矢印キーより速い」と感じるところまでには別の時間がかかります。

覚えきる前の期間には実害もあります。インサートモードのつもりでノーマルモードのキーを打つと、文字が入る代わりに行が消えたり画面が飛んだりします。慣れないうちはモード・移動・保存だけの最低限の使い方を先に押さえ、Esc:q!で必ず抜けられる状態にしておくと安全です。

使ってみて

周囲にVimmerがほとんどいない環境で長く使っていると、「なぜ使うのか」を聞かれる機会は今でも多くあります。自分の中では「サーバーでもローカルでも同じ操作感で作業できること」が一番の理由だと、最近はっきり言えるようになりました。最初の数週間はキー操作を覚えるのに苦労しましたが、その投資は年単位で使い続けるほど回収できていると感じています。

まとめ

この記事で数字にできたのは3つです。10行を直したときの打鍵数が36対229になったこと、macOS 26.4.1に/usr/bin/vimが最初から入っていてGitの既定エディタもviになること、素の起動が50ミリ秒を切ることでした。カスタマイズ性と少数派であることの価値は測っていない部分なので、そこは好みの話として読んでください。

関連記事

← Vim研究所 トップへ戻る