set shell=X:/Cygwin/bin/bash.exe
我这样设置后发现PATH中的shell脚本可以直接运行了,不仅仅是可以调用可执行文件,
这样基本和在Unix下用gvim没差别,当然PAHT要包含Cygwin/bin这个目录.
不过还是存在问题的,很多插件都用到expand()函数来展开文件的路径,对文件的路径处理需要自己修改,
比如Unix的/会被展开成\,带有空格的文件名仍然没法传递到命令中去,
懒点的办法就是把路径用引号括起来再传递给命令
我试过escape(substitute(expand("%"),"\\","/","g"), ' '),
不过好像还是没法正确传递,不管了,反正有简单的解决办法...
:help shellquote
:help shellxquote
:help shellslash
2009/11/20 Ricky <rich...@live.com>:
--
Wu Yongwei
URL: http://wyw.dcweb.cn/
--------------------------------------------------
From: "Yongwei Wu" <wuyo...@gmail.com>
set shell=C:\cygwin\bin\bash.exe
set shellcmdflag=-c
set shellquote=\"
基本可以工作,但是,碰到这样的东西就出问题了:
:!echo "Hello\" & World"
主要是碰到双引号的问题会很多。在cvsmenu中,造成的结果是commit的log
message一含有引号就不能正确工作。我没找到使用bash时的完美解。
2009/11/20 Ricky Wu <rich...@live.com>:
http://code.google.com/p/puttycyg/
puttycyg可以用来代替windows console连接本地cygwin.
有两个方案,通过vimrun调用puttycyg启动bash,把命令传递给bash执行
通过vim调用puttycyg(用puttycyg替换vimrun)启动bash,把命令传递给bash执行
两种方法都试过,虽然都能启动puttycyg进入到bash命令提示符窗口,但是显然没法直接传递命令并执行
好在puttycyg是开源的,有兴趣可以改改应该可以实现,不过俺的c不咋的,就不好意思动了
--------------------------------------------------
--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛