← Vim研究所

Vimのコマンドラインウインドウの使い方(q: / q/)

2019-11-17 公開 ・ 更新: 2026-08-05

長いExコマンドを打ち間違えて最初からやり直した経験は誰にでもあるはずです。コマンドラインウインドウを使えば、過去に実行したコマンドや検索を「ノーマルモードの操作感」で編集して再実行できます。

目次(6項目)
キーこれだけ覚える
q:Exコマンドの履歴を編集
q/ / q?検索履歴を編集
Ctrl-fコマンドライン入力中に履歴ウインドウを開く
Enterカーソル行のコマンドを実行して閉じる

開き方

q:

または、コマンドラインに入った状態でCtrl-fを押す方法もあります。入力中の長いコマンドにタイプミスを見つけたときに使うと効果的です。

BEFORE
:%s/gerp/grep/g
Ctrl-f
AFTER
:%s/foo/bar/g
:g/TODO/d
:%s/gerp/grep/g

1行だった入力欄が、過去の履歴を含む複数行のバッファに変わります。カーソルは入力していた行の末尾に残るので、そこからbhで打ち間違えた箇所まで戻って直接修正できます。バックスペースで消して打ち直す必要がありません。

種類によって開くウインドウの履歴が変わります。

要点:普段のコマンド履歴ならq:、検索履歴を編集したいならq/を使います。開いたら通常のノーマルモード操作がそのまま使えます。

何が表示され、何ができるのか

コマンドラインウインドウには過去のコマンド・検索の履歴が一覧表示され、次の操作ができます。

普通のコマンドラインは1行の入力欄にすぎませんが、コマンドラインウインドウはバッファとして扱われるため、複数行にまたがる編集や、ヤンク・削除といった通常の編集コマンドがそのまま使えます。ヤンクしたコマンドを他のバッファに貼り付ければ、設定ファイルへそのまま転記することもできます。

ウインドウの高さを指定して開く

デフォルトの高さで足りない場合は、数値を前置して開く高さを指定できます。

10q:

履歴の件数が多いプロジェクトでは、あらかじめ広めの高さで開いておくと一覧性が上がって探しやすくなります。開いた後にCtrl-w +で高さを後から調整することもできます。

活用場面

特に効果を発揮するのは次のような場面です。

ありがちな事故

コマンドラインウインドウを終了しようとして:qと打つつもりが、間違えて別の行にカーソルがある状態でEnterを押してしまい、意図しないコマンドが実行される、という事故が起きがちです。行を移動した直後は、実行前に何にカーソルがあるか確認する癖をつけておくと安心です。心配な場合はCtrl-cEscで一旦キャンセルしてから:qと入力し直す方が安全です。

使ってみて

複雑な:%s置換コマンドを何度も微調整しながら試すとき、コマンドラインウインドウを開いて履歴から呼び出し、一部だけ書き換えて再実行する使い方が定着しています。1行入力の矢印キーで履歴をたどるより、バッファとして編集できるほうが複雑な修正には向いていると感じます。

まとめ

コマンドラインウインドウはq:/q/で開ける、履歴をバッファとして編集・再実行できる機能です。長いコマンドの微調整や検索パターンの修正が頻繁にあるなら、覚えておく価値があります。

← Vim研究所 トップへ戻る