2

正如标题所说。

我很想知道如何使用 VimScript 执行 if 语句来检查当前文件中是否存在 %Y(用于状态行)。这是我到目前为止所拥有的:

if expand('%:Y') != ""
    let filetype=extend('%:Y')
    let filetype+= ",\ "
else
    let filetype=""
endif

当然,这是我的状态行,如果文件类型不存在,我不想显示文件类型逗号和空格。

感谢你的帮助!

4

1 回答 1

4

您不能使用expand()或类似方法来解决 ; 中的选项'statusline'。它们仅在设置内部进行解释。

如果您不喜欢选项返回的格式或想要将选项组合到自定义指标中,则必须在%{...}Vimscript 表达式中模拟该选项。大多数选项可以完全或大部分模拟。对于您的%Y,这将包含在'statusline'

let &statusline .= '%{empty(&filetype) ? "" : "," . toupper(&filetype) . ", "}'

除了将大型表达式内联,您还可以将其移动到单独的:function.

于 2012-11-09T21:21:37.443 回答