コマンド・Exコマンド・キーマッピングの違いを整理する
Vim関連の記事や会話では、「コマンド」「Exコマンド」「キーマッピング」「キーバインド」といった言葉がかなり緩く使い分けられています。日常的に読む分には支障なくても、自分で正確に書きたいときや、ヘルプを検索するときに用語がずれていると欲しい情報にたどり着けません。ここではVimのヘルプに沿った意味を整理します。
目次(8項目)
コマンドとExコマンドの違い
「コマンド」という言葉は文脈によって指す範囲が変わる、最も曖昧に使われがちな用語です。
| 用語 | 意味 |
|---|---|
| コマンド | Vimの機能そのもの、あるいはそれを起動するキー操作全般を指す広い言葉 |
| Exコマンド | :で始まり、文字列+Enterで実行する形式のコマンド(例::write、:%s/foo/bar/) |
| 検索コマンド | /や?で始まる検索・置換のためのコマンド |
Vimのヘルプでは、:で始まるものを指して「コロンコマンド」と表現している箇所もあります。「コマンド」だけだと、単発のキー操作(ddなど)とExコマンド(:dなど)のどちらを指しているか分からないことがあるので、書くときは「Exコマンド」まで明示したほうが誤解が少なくなります。
:で始まるものは「Exコマンド」、それ以外の広い意味は単に「コマンド」。書き分けるだけで記事の正確さが上がります。
キーマッピング・キーバインド・ショートカットキーの違い
この3つも混同されやすいですが、Vimのヘルプで正式に使われているのは「キーマッピング」だけです。
| 用語 | Vimでの扱い |
|---|---|
| キーマッピング(マップ) | コマンドへのキー割り当てを指すVim公式の用語です。ヘルプでも「マップする」「マッピング」と表記されます |
| キーバインド | 一般的なIT用語としては正しいものの、Vimのヘルプにはほぼ登場しません。他ソフトウェアの話をする文脈以外では避けるほうが無難です |
| ショートカットキー | Windows/Mac等のOSでよく使われる用語です。複数キーの組み合わせを前提とする点でキーマッピングとは意味がずれ、Vim界隈ではほぼ使われません |
「Vimのキーバインドを覚える」という言い回しは一般に通じるので日常会話では困りませんが、Vimの公式ドキュメントを検索するときは「マッピング」で探したほうがヒット率が高くなります。:help mapや:help key-mappingのような公式ヘルプ項目名もこちらに寄せて作られています。
なぜ用語が揺れやすいのか
Vim自体が長い歴史を持ち、日本語ドキュメントも複数の翻訳者・時代を経て蓄積されているため、訳語が完全には統一されていません。また、他のエディタ・IDEで一般的な用語(ショートカットキーなど)を無意識に持ち込んでしまうことも多いです。正確さが必要な技術記事やヘルプ検索の場面では「Exコマンド」「キーマッピング」の2語を軸に書くと、意図が伝わりやすくなります。
自分で記事を書くようになってから、「コマンド」とだけ書いて後で読み返すと、Exコマンドのことなのか単発のキー操作のことなのか自分でも分からなくなることがありました。以来、Exコマンドかどうかを意識して書き分けるようにしたら、読み返したときの分かりやすさが変わりました。
モードの呼び方も揺れている
もう1組、混ざりやすいのがモードの名前です。: を打ったあとの状態を「コマンドモード」と呼ぶ記事がありますが、Vimのヘルプでこれは「コマンドラインモード」です。ヘルプで「Command-line mode」と書かれているのはこちらを指します。
ややこしいのは、viの時代には Esc を押した状態のほうを「コマンドモード」と呼ぶ習慣があったことです。そのため「コマンドモードに戻る」という表現は、書き手によって指しているものが逆になります。Vimのヘルプに揃えるなら、前者はコマンドラインモード、後者はノーマルモードです。
挿入モードは「インサートモード」とも書かれますが、こちらはどちらもヘルプで使われている表記なので混乱しません。訳語が2つあるだけで、指しているものは同じです。
オペレータ・モーション・テキストオブジェクト
編集操作の説明でよく出るこの3つも、意味が決まっています。d や c のように「何をするか」を決めるのがオペレータ、w や $ のように「どこまで」を決めるのがモーション、iw や i( のように「このかたまり」を指すのがテキストオブジェクトです。
この3語を区別しておくと、ヘルプを引くときに迷いません。オペレータの一覧は :help operator、モーションは :help motion.txt、テキストオブジェクトは :help text-objects にまとまっています。
ヘルプを引くときの書き方
用語よりも実務で効くのが、ヘルプのタグの付け方です。同じキーでもモードによって項目が分かれているので、接頭辞を付けないと目当ての説明に辿り着けません。
:help i_CTRL-R " 挿入モードの Ctrl-r
:help v_o " ビジュアルモードの o
:help c_CTRL-R " コマンドラインの Ctrl-r
:help :s " Exコマンドの :s
:help 'shiftwidth' " オプションはクォートで囲む
接頭辞は i_ が挿入モード、v_ がビジュアルモード、c_ がコマンドライン、g で始まるキーはそのままです。オプションはシングルクォートで囲みます。この規則を覚えると、用語の揺れに悩む前に一次情報へ辿り着けるようになります。
まとめ
:付きは「Exコマンド」、それ以外の広い意味は「コマンド」。キー割り当ての話は「キーマッピング」を使います。この2組を意識するだけで、記事もヘルプ検索も正確になります。実際にExコマンドを自分で作る手順はユーザー定義コマンドの記事に、キーマッピングを書く側はキーマッピングの記事にあります。用語の区別がついていると、どちらの記事を読めばよいかも迷わなくなります。