1

我目前在我的 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然后在状态行中显示它。谢谢。

4

2 回答 2

4

:set不访问变量,所以不能使用问号查询变量。

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

你应该添加:

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

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

详情请参阅:h expr-option

更新 这只会显示1(expandtab set) 或0(expandtab not set)。然而应该起作用的是这样的:

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

设置 expandtab 时显示“et”,未设置 expandtab 时显示“noet”。这使用<cond>?<true>:<false>表达式来显示特定的字符串,具体取决于 <cond> 条件的值。这在下面的帮助中进行了解释:h expr1

于 2014-12-07T09:14:18.263 回答
1

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

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

查看:h :let-&更多

于 2014-12-07T09:13:57.250 回答