我正在尝试设置Notepad ++ IDE,这样当我按下F6时,我正在编辑的Ruby脚本将运行。在搜索互联网后,我发现了推杆
cmd /K ruby "$(FULL_CURRENT_PATH)"
当我按下F5时弹出的运行对话框将在命令提示符中运行基本脚本(我使用的是Windows 7)。
但是,如果我的代码加载任何外部数据,如.txt文件,或者我在Gosu中找到的,加载任何图像文件,Ruby会抱怨事实上并不存在。
我知道我的代码和Ruby安装(Ruby 1.9.3)都很好,因为在此之前我一直在使用FreeRIDE,一个我已经厌倦了的旧的,有点错误的IDE,我的代码运行正常使用该IDE按F5。
投诉的一些例子如下。
我的文字冒险:
C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text Focused Fold
er/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFileParser.rb:8:i
n `initialize': No such file or directory - Example Dungeon Creator File.txt (Er
rno::ENOENT)
from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text
Focused Folder/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFile
Parser.rb:8:in `open'
from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text
Focused Folder/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFile
Parser.rb:8:in `encapsulate_method'
from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text
Focused Folder/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFile
Parser.rb:117:in `sort_room_data_external_method'
from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text
Focused Folder/Ruby Scripts/Text Adventure/0.1.0/File Parser/DungeonContentFile
Parser.rb:125:in `<main>'
D:\Programming Stuff\Notepad++>
我的Gosu计划:
C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text Focused Fold
er/Ruby Scripts/Game Development/Circular Motion.rb:10:in `initialize': Could no
t load image media/Space2.png using either GDI+ or FreeImage: Unknown error (Run
timeError)
from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text
Focused Folder/Ruby Scripts/Game Development/Circular Motion.rb:10:in `new'
from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text
Focused Folder/Ruby Scripts/Game Development/Circular Motion.rb:10:in `initiali
ze'
from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text
Focused Folder/Ruby Scripts/Game Development/Circular Motion.rb:181:in `new'
from C:/Users/Estanislao/Dropbox/Allway Sync/My Important Documents/Text
Focused Folder/Ruby Scripts/Game Development/Circular Motion.rb:181:in `<main>'
D:\Programming Stuff\Notepad++>
如果有人可以提供任何帮助,我会非常感激。
更新: knut的建议让我在每次启动程序后都有一些不方便的杂耍后得到我想要的东西。有一些问题。使用
cmd /K "cd "$(CURRENT_DIRECTORY)" && ruby "$(FULL_CURRENT_PATH)""
在默认运行对话框中不起作用。 (我得到与上面相同的抱怨。)但是使用NppExec和
cd "$(CURRENT_DIRECTORY)"
ruby "$(FULL_CURRENT_PATH)"
对于它的工作正常,除了我的Gosu代码,它应绘制一个窗口并动画一些图像,没有任何反应。但是,如果每次启动Notepad ++,我都运行NppExec,然后使用默认运行对话框,一切正常,使用该会话的内置运行命令。任何想法为什么这一切发生以及如何预防?此外,我更喜欢让Notepad ++打开一个命令提示符窗口,而不是像在NppExec中那样在Notepad ++本身中运行。谢谢你!
Update2:似乎重新启动计算机已经解决了问题,但现在我对实际发生的事情感到困惑。 NppExec插件是否实际允许事物按照我的意愿工作,即使我使用保存的脚本进行默认运行对话框?或者这是一个错误,保持
cmd /K "cd "$(CURRENT_DIRECTORY)" && ruby "$(FULL_CURRENT_PATH)""
从工作到我重新开始?
答案 0 :(得分:7)
你的问题:用
cmd /K ruby "$(FULL_CURRENT_PATH)"
你在实际目录中调用ruby-script - 实际目录不能是你的源目录。在我的测试用例中,它是Notepad ++的目录。
您可以使用:
cmd /K "cd "$(CURRENT_DIRECTORY)" && ruby "$(FULL_CURRENT_PATH)""
但我建议使用NppExec-Plugin。 使用NppExec,您可以定义如下命令:
cd "$(CURRENT_DIRECTORY)"
ruby "$(FULL_CURRENT_PATH)"
所以你在正确的目录中启动你的ruby脚本。
甚至更容易:
您设置选项Plugins->nppexec >follow $(current directory)
并使用
ruby "$(FULL_CURRENT_PATH)"
也许也很有趣: