0

vimscript で次の文字列が与えられたとします。

"/home/Linus Torvalds/.vim/bundle/vim-autoformat/formatters/tidy -q --show-errors 0 --show-warnings 0 --indent auto --indent-spaces 2 --vertical-space yes --tidy-mark no --wrap 68".

ファイル名部分を抽出するにはどうすればよいですか? この場合、次のようになります。

"/home/Linus Torvalds/.vim/bundle/formatters/tidy".

4

1 に答える 1

0

-パス自体にダッシュ ( ) がないことを保証できる場合は、次のようにします。

matchstr(input_string,'^.\{-}\ze -')

説明: 文字列の先頭( ) から、最初にダッシュが続くスペース^( ) まで、任意の文字に貪欲に一致しません( )。.\{-}\ze -

または、最初のダッシュまで一致させてから、末尾の空白をsubstitute()コマンドで削除することもできます。これは簡潔ではありませんが、読みやすくなる可能性があります。

于 2013-02-26T17:43:18.010 に答える