2

タイトルの通りです。

VimScript を使用して、%Y (ステータスライン用) が現在のファイルに存在するかどうかを確認する if ステートメントを実行する方法を知りたいです。これは私がこれまでに持っているものです:

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 に答える