system 参数中如何指定文件名
vim吧
全部回复
仅看楼主
level 7
niejieqiang 楼主
如我的plugin/if_perl.vim中写了一句:
if has('perl')
let my_inc= system("perl get_inc.pl")
perl push @INC,split/ /,VIM::Eval("my_inc");
endif
这个get_inc.pl 就在plugin目录下
但system运行时却没找到这个pl文件.....

2012年10月29日 10点10分 1
level 14
你的path里没有plugin目录, 肯定找不到啊,vimscript只是内置脚本并不是一个独立的执行实
体,当前的运行目录是vim所在的路径。
2012年10月29日 12点10分 2
level 7
niejieqiang 楼主
[汗]原来是这样啊
2012年10月29日 12点10分 3
level 7
niejieqiang 楼主
我放在vim73目录也不行
2012年10月29日 12点10分 4
level 14
当然不行- -!vim是vim,perl是perl,perl的INC并不会继承vim的根目录
2012年10月29日 13点10分 5
level 10
用 “cd path &pl ...” 试试看
2012年10月29日 16点10分 6
level 7
niejieqiang 楼主
没折腾了,就用
system("perl -e \"print $_,\' \' for @INC \"") 反正就只有WINDOWS下有这个问题
2012年10月30日 13点10分 7
level 14
这跟系统没关系吧,linux里也得找的到path才可以[汗]
2012年10月31日 12点10分 8
level 14
顺便说下你为啥要提vim73? 是不是"当前的运行目录是vim所在的路径"让你误会了?
我指的不是vim安装目录,而是vim启动目录,更具体的是:cd返回的那个路径。
2012年10月31日 12点10分 9
level 7
niejieqiang 楼主
我这么做是因为vim带的perl接口里面它找不到我系统中所安装的perl的lib目录在哪里,也就是说我在.vim文件中嵌入perl代码的时候用不了模块......
你可以试试,windows上的gvim
:perl VIM::Msg $_ for @INC 输出的是 "."
但是在fedora17中的gvim没做设置就行,能输出模块路径在哪
2012年10月31日 12点10分 10
level 14
win下strawberry perl默认是加入环境变量的,不过vim的perl版本接口低,我这官方7.3找的是perl512.dll,现在都516了- -!python也有这个问题,官方默认接口不支持3.3...你要是
版本高的话得自己编译了,或者降版本(估计你也不愿意...)
2012年10月31日 12点10分 11
vim73目录中只要有512.dll就行了,不管你用的是perl5.8还是5.16版本,都能正常使用perl接口[呵呵],我都试过
2012年10月31日 13点10分
除了不能调用模块,这样把本地的lib路径push进去后,就能正常使用了
2012年10月31日 13点10分
回复 niejieqiang : 我戳,还能这么用?阉割版吧。。。。
2012年10月31日 13点10分
level 14
好像看花眼了,你说的不是版本问题,不过我这也没法试除非换个5.12去
2012年10月31日 13点10分 12
level 14
试了下没问题的,你装的是strawberry不?
2012年10月31日 13点10分 13
active perl 5.16 啊,如果不设置成1楼那样,就只有" . "
2012年10月31日 13点10分
回复 niejieqiang : 别用active这货没草莓好用[咦]
2012年10月31日 13点10分
1