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

标签 conditional-statements vim

正如标题所说。

我很想知道如何使用 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/

相关文章:

ruby-on-rails - rails.vim 安装但 :Rfind doesnt'work

ios - 条件声明 Swift 上的数组索引超出范围错误

javascript - 我如何有条件地加载我的 React 组件?

vim - 如何让 Vim 自动缩进以在新行上保持缩进

javascript - 必要时用空格填充相等性/同一性 (==/===) (vim)

vim - vim 与其他程序的接口(interface)

if-statement - 过滤 DAX 中连接字段的特定值

linux - 日期和条件 bash 命令的奇怪但非常简单的问题

php - WooCommerce 成员(member)资格 : Conditional to check a page access

Vim:打开时假设某些文件类型/语法突出显示