次のような文字列値を持つ vim 変数があります。
foo%:p:r:sbar
%:p:r:s は vim のワイルドカードです。
文字列変数ですべてのワイルドカードを展開するにはどうすればよいですか?
残念ながら、 expand(my_variable) は役に立ちません。追加の引数を指定したり、他の vim 関数を使用したりする必要がありますか?
ありがとう。
試す:help expand()
ドキュメントのこのセクションは、特にあなたに関連しているようです:
Modifiers:
:p expand to full path
:h head (last path component removed)
:t tail (last path component only)
:r root (one extension removed)
:e extension only
Example: >
:let &tags = expand("%:p:h") . "/tags"
Note that when expanding a string that starts with '%', '#' or
'<', any following text is ignored. This does NOT work: >
:let doesntwork = expand("%:h.bak")
Use this: >
:let doeswork = expand("%:h") . ".bak"
末尾の (そしておそらく先頭の) 文字列はexpand().
ただし、これは機能します。
:echo "foo" . expand("%:p:r:s") . "bar"
ワイルドカードが他の文字列と組み合わされる前に展開されるように、スクリプトを修正できる可能性があります。または、連結された文字列を分割し、ワイルドカードを展開してから、再度連結することもできます。