【问题标题】:Display the current status of `expandtab` in statusline in macvim在 macvim 的状态行中显示 `expandtab` 的当前状态
【发布时间】:2015-02-05 01:54:39
【问题描述】:

我目前在我的 macvim 中使用 vim-airline,我想在状态行中显示 expandtab 的状态,无论它是否已设置。

我可以通过运行以下命令:set expandtab? 来了解expandtab 的状态。从 vim-airline 文档中我发现我可以使用这样的东西

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

我修改为

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

但我收到错误 undefined variable: expandtab

谁能告诉我如何检索expandtab 的状态,然后将其显示在状态行中。谢谢。

【问题讨论】:

    标签: vim macvim statusline vim-airline


    【解决方案1】:

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

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

    所以你应该添加:

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

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

    详情请见:h expr-option

    更新 这只会显示1(展开选项卡设置)或0(展开选项卡未设置)。然而应该是这样的:

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

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

    【讨论】:

    • 这行得通。但唯一的问题是它显示01 而不是文本expandtabnoexpandtab
    • 谢谢它的工作。顺便说一句,您的意思是您将更新 answer
    【解决方案2】:

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

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

    更多信息请见:h :let-&

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多