正如标题所说。
我很想知道如何使用 VimScript 执行 if 语句来检查当前文件中是否存在 %Y (表示状态行)。这是我到目前为止所拥有的:
if expand('%:Y') != ""
let filetype=extend('%:Y')
let filetype+= ",\ "
else
let filetype=""
endif
这当然是针对我的状态行的,如果文件类型不存在,我不想显示文件类型逗号和空格。
感谢您的帮助!
最佳答案
您不能使用 expand()
或类似的方法来解析 'statusline'
中的选项;它们仅在设置内解释。
如果您不喜欢选项返回的格式或想要将选项组合到自定义指示器,则必须在 %{...}
Vimscript 表达式中模拟该选项。大多数选项都可以完全或大部分被模拟。对于您的 %Y
,这将包含在 'statusline'
中:
let &statusline .= '%{empty(&filetype) ? "" : "," . toupper(&filetype) . ", "}'
您还可以将其移动到单独的 :function
中,而不是内联大型表达式。
关于conditional-statements - 检查 VimScript 中当前文件中是否存在 %Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314264/