vital.vim
vital.vim copied to clipboard
OptionParser で引数の値にスペースを含められるようにしたい
OptionParserは、内部的に
スペースが2つ入ると再現できないので必須かと思います。 そのうえで unix like な引数分解をしたいのであれば gist-vim のこれが使えるかと思います。
https://github.com/mattn/gist-vim/blob/master/autoload/gist.vim#L115-L120
コメントありがとうございます。
gist-vimのこのコードは、', "で囲ったときだけスペースOKにしてる、ってことですよね?(正規表現 易読化ツールが欲しい…
あと、以下はどこに対するコメントですか?
スペースが2つ入ると再現できないので 必須かと思います。
gist-vimのこのコードは、', "で囲ったときだけスペースOKにしてる、ってことですよね?(正規表現 易読化ツールが欲しい…
はい。
あと、以下はどこに対するコメントですか?
function! s:foo(...)
echo a:000
endfunction
command! -nargs=* Foo call <SID>foo(<f-args>)
これで
:Foo "foo bar"
※スペース2個
とした場合、f-args だと幾ら join(a:000, ' ') したとしてもスペース2個(foo bar)は戻せないですよね。
ありがとうございます。
なるほど、non-escapedなスペースを許容するのであれば、
フムー
以前も言ったことがあるんですが( https://github.com/vim-jp/vital.vim/pull/116#issuecomment-27630795 )、文字列→文字列リストへの部分は独立して提供できると良さそうです。 汎用的なものを組み込みで提供したり、ユーザーから関数などを渡せると便利そう。
vital-ArgumentParser の f-args はドキュメントミスでした。こちらでも q-args を使います(mattn さんのご指摘通り、ちゃんとやるために q-args)