在macvim中显示状态行中`expandtab`的当前状态

时间:2014-12-07 07:12:46

标签: vim macvim statusline vim-airline

我目前在我的macvim中使用vim-airline,我希望显示expandtab状态是否在状态行中设置。

我可以通过运行以下命令expandtab找出:set expandtab?的状态。从vim-airline文档中我发现我可以使用类似的东西

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

我将其修改为

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

但我收到错误undefined variable: expandtab

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

2 个答案:

答案 0 :(得分:4)

:set执行访问变量,因此您无法使用问号来查询变量。

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

你应该添加:

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

注意,问号不是必需的,对VimL没有特殊意义。

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

<强>更新 这只会显示1(expandtab set)或0(expandtab未设置)。然而应该起作用的是:

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

当设置expandtab时将显示'et'或未设置expandtab时显示'noet'。这使用<cond>?<true>:<false>表达式来显示某个字符串,该字符串取决于&lt; cond&gt;的值。条件。以下:h expr1

中的帮助对此进行了解释

答案 1 :(得分:1)

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

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

有关详情

,请参阅:h :let-&