- 133 名前:120 mailto:sage [2010/11/20(土) 06:47:29 ]
- >>121
:set shell=zsh としているのは、 :!zsh -c "echo 'a|b'" とかを :!echo 'a|b' と書きたいからで、 それは " やら ' やら | の特殊記号についてエスケープとかを 本来やろうとしていることに対して余計に気にしたくないという欲求によるものです。 というか、普通に unix でできているようにしたいというだけです。 案(代替案?)を示して頂いて申し訳ないのですが、 つまり、余分に " で囲ったり、関数を噛ませたりはしたくない訳です。 :!echo 'a|b' として実行したい。 と、なんかちょっと無理そうな気はする。 unix vim だと system() とかに渡す前に \ エスケープとかしてるっぽいけど、 win32 vim だとそれがないっぽい。 system() 相当の関数から呼ばれている parser ('shell' とは別。cmd.exe ?) を 指定できればなんとかなったりするのかな。何か勘違いしてる気もするが。 >>127 :exec 'echo i' と :echo i って同じですよ。 例としては :exe '!echo' i の方が適切かと。 :exe '!echo ' . i の方が解りやすいかも。
|

|