略しすぎて別の単語になってしまったVimのコマンドなにこれクイズ
この記事は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文字コマンドなにこれクイズ」とかやっても面白いかも:=
Discussion