Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby需要相关文件_Ruby_Vim_Require - Fatal编程技术网

ruby需要相关文件

ruby需要相关文件,ruby,vim,require,Ruby,Vim,Require,我将ruby v1.9.1与vim结合使用,并通过以下方式执行脚本: :!ruby "%" 如果添加以下内容,我的脚本运行正常: $:.unshift File.dirname(__FILE__) 将此文件的路径添加到ruby的加载路径。如果省略这一行,本地脚本的require语句将不再有效 是否有办法将文件路径传递到rubys LOAD_path?类似于(完全虚构的): 我之前做过一些研究,并对require\u relative进行了分析,但这与require具有相同的效果,并且不起作用

我将ruby v1.9.1与vim结合使用,并通过以下方式执行脚本:

:!ruby "%"
如果添加以下内容,我的脚本运行正常:

$:.unshift File.dirname(__FILE__)
将此文件的路径添加到ruby的加载路径。如果省略这一行,本地脚本的
require
语句将不再有效

是否有办法将文件路径传递到rubys LOAD_path?类似于(完全虚构的):


我之前做过一些研究,并对
require\u relative
进行了分析,但这与require具有相同的效果,并且不起作用。

您可以使用ruby可执行文件的
-I
选项编写如下内容:

:!ruby -I%:p:h. %
有关更多信息和帮助,请参见
ruby--help


已编辑:请参阅注释。

似乎是正确的选择,但您的示例仅将my home目录添加到加载路径,而不是脚本文件所在的目录。它可能类似于
:!ruby%-I.“%:p:h”
但这也不起作用(不向加载路径添加任何内容)。您可能需要
:!ruby%-I%:p:h
虽然我不能真正测试这个。你能解释一下这些选项的含义吗?我不懂这个部分:
%:p:h
。我已经在家里测试过了;)所以你的结论正是你想要的。我会更新我的答案。@mliebelt请看
:!ruby -I%:p:h. %