2014-12-07 109 views
1

我目前在我的macvim中使用vim-airline,我想在状态行中显示expandtab的状态。在macvim的状态行中显示`expandtab`的当前状态

通过运行以下命令:set expandtab?可以找出expandtab的状态。从VIM航空公司的文档,我发现我可以使用这样的事情

let g:airline_section_b = '%{getcwd()}'

我修改了它

let g:airline_section_b = '%{expandtab?}'

但我得到的错误undefined variable: expandtab

有人可以告诉我如何检索expandtab的状态,然后显示在状态行中。谢谢。

回答

3

:set:h :let-&访问的变量,所以你不能用问号来查询变量。

您正试图访问变量expandtab,该变量不存在。您实际上想要访问选项设置,并使用前缀&访问这些选项。

叟你应该增加:

let g:airline_section_b = '%{&expandtab}' 

注意,quesion标志是没有必要的,有VimL没有特殊含义。

有关详细信息,请参见:h expr-option

更新 这将仅显示1(expandtab组)或0(expandtab未设定)。然而,什么工作应该是这样的:

let g:airline_section_b = '%{&expandtab?"et":"noet"}' 

这将显示“等”当expandtab设置或“NOET”如果没有设置expandtab。这使用<cond>?<true>:<false>表达式根据<条件的值显示某个字符串。这在下面的帮助中解释了:h expr1

+0

这是有效的。但唯一的问题是,它显示“0”或“1”,而不是文本“expandtab”或“noexpandtab” – Sudar 2014-12-07 12:26:30

+0

我会为你更新问题 – 2014-12-07 16:17:09

+0

感谢它的工作。顺便说一句你的意思是你会更新*答案*? – Sudar 2014-12-08 04:24:01

1

如果前缀为&,则可以访问Vim选项的实时变量。例如:

let g:airline_section_b = '%{&expandtab}' 

更多