Vimの設定の現在の値を取得する


274

指定されたVim設定の現在の値を見つける簡単な方法はありますか?たとえばの現在の値を知りたい場合は、次のようtabstopに実行できます。

:set tabstop

引数を渡さないと、Vimが現在の値を教えてくれます。これは多くの設定で問題ありませんが、trueまたはfalseのいずれかである設定には適していません。たとえば、の現在の値を確認するにはexpandtab、次のコマンドを実行します。

:set expandtab

実際に有効になりexpandtabます。有効になっているかどうかを確認したいだけです。

この種は私が望むことをします:

:echo &l:expandtab

しかし、それはかなり冗長に見えます。より速い方法はありますか?

回答:


378

?を追加 設定名の後ろにマークを付けると、値が表示されます

:set expandtab?

15
このset <...>?構文は、オプションである「設定」では機能しますが、変数である「設定」では機能しません。したがって、たとえば、現在の構文強調表示モード(オプションではなく、変数にエンコードされている)を見つけるには、を実行する必要がありますecho b:current_syntax
Maxy-B 2014

16
あなたも確認したい場合はどこオプションが使用、から設定しましたverbose。この例では、:verbose set expandtab
mkobit 2016年

1
などの設定の現在の値をどのように確認しますbehaveか?私が試してみましたbehave?set behave?。残念ながら、それらは機能しません。
jdhao

38

または、&記号は「オプション」を意味するために使用できます-例

let x = &expandtab
echo &expandtab

リスト要素の値を取得するオプションもありますか?(例:リスト文字のスペース)
816-8055 2016

listcharsはListではなく通常の文字列であると思いますが、次のようなことはできると思いますsplit(&listchars, ',')
cdyson37

9

チェックしたい磁器を覚えていない場合は、

を使用してすべての設定を確認できます

:set all

すべての設定が一覧表示されます。


4

次のように、表示できる追加のvim設定もあります。

:highlight

完全なリストについては、http//vim.wikia.com/wiki/Displaying_the_current_Vim_environmentを参照してください。

編集:私の答えには誤解があります。これはどのコマンドでも機能しません。ただし、上記のURLにリストされているすべてのコマンドで機能します。


これは動作しません。autowriteがオンになっているかどうかを確認したいと思いました。:set autowrite?仕事をします。
Atcold 2016年

@Atcold:これは一部の設定では機能しますが、このタイプのクエリのみが機能します。
gmarmstrong

@gmarmstrong:答えがそのような発言で編集されているのがわかります。
Atcold
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.