vim-jp / issues

有志で既知のバグや要望を検討・管理し、オフィシャルへの還元をしていきます。
https://vim-jp.org/
342 stars 11 forks source link

sxq のデフォルト値が変わって動かないスクリプトがある #260

Open koron opened 12 years ago

koron commented 12 years ago

166 で cmd.exe 利用時の sxq のデフォルト値が ( に変わりました。

しかし伝統的に sxq' であることを期待して書かれたスクリプトは数多くあり、それらは誤動作すると推測されます。

例: $VIMRUNTIME/ftplugin/ruby.vimの80行目

if &shellxquote == "'"
  let s:ruby_path = system('ruby -e "' . s:code . '"')
else
  let s:ruby_path = system("ruby -e '" . s:code . "'")
endif

長丁場になるかもですが、これらを一つ一つ修正する必要があるでしょう。

加えて system({list}) みたいなメソッドを新設して、引数の連結をVimに任せる方向も要検討かも。モデルとしては Pythonのsubprocessモジュール みたいなのを引き合いに出すと、Python好きなBramとしては見過ごせないかもw

Shougo commented 12 years ago

加えて system({list}) みたいなメソッドを新設して、引数の連結をVimに任せる方向も要検討かも。

system({list})はほしいですね。いつも、シェル引数のエスケープには苦労させられています。 vimproc#system(){list}を解釈しますが、標準では無いですし。

mattn commented 11 years ago

system([]) は入れた方がいい気がする。配列で指定された引数を CreateProcess 向けの文字列に変えるルールはmicrosoft自身が提示してたと思う。