略しすぎて別の単語になってしまったVimのコマンドなにこれクイズ

2025/03/03に公開

この記事はVim駅伝の2025-03-03の記事です。
前回の記事はmikoto2000さんのVim でカーソル下の文字コード取得と文字コードでの入力を行うです。
次回の記事はkuuさんの:%!xxx-fmtをいい感じにスクリプトでやるです。


VimのEXコマンドは決められた形式まで略すことが認められています。:quit:q:help:hなどが有名です。しかし省略した結果、別の意味の単語になってしまったコマンドも存在します。特に使用頻度の低いものは省略形を見慣れておらず面白いです。10個をピックアップしたので、それぞれどんなコマンドか考えてみてください。

:abc

まずはABCから。筆者は使ったことがありませんでした。

答え

abclear

短縮入力(abbrev)を削除(clear)するコマンドです。

:bad

悪そう。筆者は使ったことがありませんでした。

答え

:badd

ファイルをバッファリスト(b)に追加(add)するコマンドです。追加だけして読み込みはされません。

:on

:on!も可能。筆者はキーマップに登録していてたまに使います。

答え

:only

カレント以外のウィンドウを閉じるコマンドです。

:cold

冷たい。筆者は使ったことがありませんでした。

答え

:colder

coldの比較級…ではなく、quickfixリスト(c)の古いもの(older)に移動するコマンドです。実は:colまで略せます。

:cat

にゃーん。筆者はこれに助けられることはよくありますが、コマンドラインから入力して使うことはありません。

答え

:catch

例外処理のcatchです。Vim scriptでちょっと複雑な処理を書くと出てきますね。

:debu

筆者はdebuではないので使ったことがありませんでした。

答え

:debug

何かのコマンドをデバッグモードで実行するコマンドです。どういう動きをしているのか知れて面白そう。:debまで略せます。

:sun

いつも心に太陽を!筆者は使ったことがありませんでした。

答え

:sunhide

sunだと昼っぽいけどsunhideだと逆に夜っぽいぞ。
これはウィンドウを分割してロード済みのバッファをすべて開くコマンドです。バッファを「隠さない」(unhide)のsがついたバージョンと考えることができます。
実は、バッファ操作系のコマンドはウィンドウを分割(split)して行うバリエーションがあり(:bnextに対する:sbnextなど)、この:sunhideもその一つです。しかし、「隠さなくする」とはつまり「ウィンドウを分割して全部表示する」なので、これに関しては:unhide:sunhideも同じ動きをします。
試しに使ってみた感じでは3分割がギリギリ、4以上は正直見づらいですね。

:tea

オチャドゾ(´・ω・)っ旦
筆者は使ったことがありませんでした。

答え

:tearoff

Win32 GUI版において、一部のメニューを切り取るコマンドです。Vimがいろいろな環境で使われてきたことがわかりますね。
:teまで略せます。ちなみに:ta :tu :toもあるけど:tiはありません。

:xa

もはや単語じゃないけど面白いので紹介。筆者は使ったことがありませんでした。

答え

:xall

変更されたバッファをすべて書き込んでVimを終了するコマンドです。
「保存して終了」を行う:exitというコマンドがあり、それをシャレ的に略した:xitというコマンドがあり、それを:xと略すことが可能であり、それにallがついたものです。

:vim

Vimmerなら:vimの意味は知っておきたいですよね。筆者はたま〜〜に使ったりします。

答え

:vimgrep

内部grepです。引数にファイルとパターンを渡し、ファイル内のパターンマッチ位置をquickfixに追加します。

いかがでしたか

いくつ正解しましたか?
普段使っているソフトウェアでも、改めてヘルプを読んでみると新たな発見がありますね。「1文字コマンドなにこれクイズ」とかやっても面白いかも:=

https://vim-jp.org/vimdoc-ja/vimindex.html#ex-cmd-index

Discussion