5

我正在尝试设置 Notepad++ IDE,以便当我按 F6 时,我正在编辑的 Ruby 脚本将运行。在搜索互联网后,我发现 cmd /K ruby "$(FULL_CURRENT_PATH)" 输入按 F5 时弹出的运行对话框将在命令提示符中运行基本脚本(我使用的是 Windows 7)。

但是,如果我的代码加载任何外部数据,例如 .txt 文件,或者像我在 Gosu 中发现的那样加载任何图像文件,Ruby 会抱怨实际上存在的东西不存在。

我知道我的代码和 Ruby 安装(Ruby 1.9.3)都很好,因为在此之前我一直在使用 FreeRIDE,这是一个我已经厌倦的旧的、有点错误的 IDE,当我按下 F5 时我的代码运行良好那个IDE。

投诉的一些例子如下。

我的文字冒险:

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)""

从工作直到我重新开始?

4

1 回答 1

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)并启动 NppExec

ruby "$(FULL_CURRENT_PATH)"

也许也很有趣:

于 2012-10-15T21:26:01.693 回答