← Vim研究所

Vimの設定値を確認する(:set と :set all の違い)

2020-01-02 公開 ・ 更新: 2026-08-20

設定ファイルをいじっているうちに、今どのオプションがどんな値になっているか把握できなくなりました。確認用のコマンドは2種類あり、目的によって使い分ける必要があります。

目次(12項目)
コマンドこれだけ覚える
:setデフォルトから変更されたオプションだけを表示
:set allすべてのオプションと現在値を表示
:set {option}?特定のオプションだけを確認

変更されたオプションだけを見る::set

:set

引数無しで:setを実行すると、デフォルト値から変更されているオプションだけが一覧表示されます。設定ファイルで何を変更したかをざっと振り返りたいときに便利です。

すべてのオプションを見る::set all

:set all
:se all   " 省略形

こちらはターミナル関連のオプションを除く、すべてのオプションとその現在値を表示します。デフォルト値がどうなっているか確認したいとき、変更したつもりの値が反映されているかを確認したいときに使います。

引数なしでsetを実行した画面。既定値から変えたオプションだけが名前と値の形で並んでいる
Vim 9.1.1752 を -u min.vim で起動したときの :set。設定ファイルで変えたものだけが出る

用語の紛らわしさに注意

「オプションを表示する」コマンドと「オプションをリセットする」コマンドは、どちらもsetallという単語を含むため名前だけで区別しにくいです。表示系は&を含まない、リセット系は末尾に&が付く、という記号の有無で見分けると混同しにくくなります。

特定のオプションだけ確認する

:set number?
:set nu?   " 省略形

全部を眺めるより、疑わしいオプションが分かっているなら?を付けて個別に確認したほうが早いです。一覧から探すより直接的です。

出力が長すぎるとき

:set allの出力はかなりの行数になります。特定のオプションだけ気になるなら、全部を眺めるより?付きの個別確認か、execute()でバッファに書き出す方法と組み合わせて検索したほうが効率的です。

設定を一時的にすべてリセットしたい場合

ここで紹介したのはあくまで「確認」のコマンドで、値を変更するものではありません。設定を初期状態に戻したい場合は、末尾に&を付けた:set all&という別のコマンドを使います。名前が似ているため混同しやすいですが、こちらは確認、あちらはリセットという役割の違いを覚えておくと安心です。

要点:変更点だけざっと見たいなら:set、デフォルト値を含めて全部見たいなら:set all。値をリセットしたい場合は末尾に&が付く別のコマンドになります。
使ってみて

設定ファイルのどこかで意図せず上書きしている値がないか調べたいとき、:setで変更点だけを一覧して原因を絞り込んだことがあります。全部を見る:set allより情報量が絞られている分、変更箇所を特定する作業には向いていると実感しました。逆にデフォルト値そのものを知りたいときは素直に:set allを使うようになりました。

他人の環境と設定を見比べるとき

他のVimmerの設定と自分の環境を見比べたいとき、:setの出力をそのまま共有すれば、相手がどのオプションを意図的に変更しているかが一目で分かります。デフォルトのままの設定を含めて全部見せるより、変更点だけに絞ったほうが会話のノイズが少なくて済み、質問や相談をするときにも要点が伝わりやすくなり、やり取りの手間そのものが減ります。

どこで設定されたかを調べる

値が分かっても、なぜその値になっているのかは分かりません。:verbose を付けると、そのオプションを最後に設定した場所が一緒に表示されます。

:verbose set shiftwidth?
:verbose set foldmethod?

設定ファイルの行番号や、プラグインのファイル名が出ます。「覚えのない値になっている」という状況では、値そのものより、これを打ったほうが早く解決します。マッピングや自動コマンドにも同じように使えます。

バッファごとの設定とグローバルの設定

オプションには全体で1つの値を持つものと、バッファやウィンドウごとに値を持つものがあります。:set で表示されるのは今のバッファに効いている値なので、別のファイルを開くと違う値になることがあります。

:setlocal shiftwidth?     " このバッファの値
:setglobal shiftwidth?    " 全体の既定値

ファイルタイプごとの設定は setlocal で書かれているので、この2つがずれます。設定ファイルに書いた値が効かないと感じたら、ftplugin があとから上書きしていないかを確かめてください。

出力をバッファに取り込む

:set all の出力は画面に流れて消えます。じっくり見たいときは、実行結果をバッファに落とすと検索や保存ができます。

:new
:put =execute('set all')
:new | put =execute('scriptnames')

execute() はコマンドの出力を文字列として返す関数で、:put = でその文字列を挿入しています。:scriptnames:map のように出力が長いコマンドでも同じ形が使えます。設定が読み込まれているかの確認はscriptnamesの記事にまとめています。

まとめ

:set:set allは表示範囲が違うだけのシンプルな確認コマンドです。用途に応じて使い分ければ、設定周りの調査がスムーズになります。

関連記事

← Vim研究所 トップへ戻る