检查VimScript中当前文件中是否存在%Y

时间:2012-11-09 19:00:32

标签: conditional-statements vim

就像标题所说的那样。

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

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

您无法使用expand()或类似内容来解决'statusline'中的选项;它们只在设置中解释。

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

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

您也可以将其移至单独的:function,而不是将大型表达式内联。