VSCode将调试shell更改为在windows上进行bash

上下文:我最近从Sublime Text切换到Visual Studio Code以测试Microsoft文本编辑器的调试function。 这里的主要问题是我的Ruby on Rails环境在Windows上的Ubuntu中设置为bash。

我将集成终端shell更改为bash,因此,我可以使用集成终端来启动/调试我的应用程序。 但是当使用Ruby扩展( https://github.com/rubyide/vscode-ruby )的集成调试工具时,它似乎启动了windows cmd来执行配置:

调试器终端错误:进程失败:生成rdebug-ide.bat ENOENT

问题:我的问题是由vscode尝试使用windows cmd而不是指定的bash shell引起的吗? 如果是这样,有没有办法告诉vscode使用它而不是windows cmd?

这是我想要执行的任务的launch.json配置:

 { "version": "0.2.0", "configurations": [ { "name": "Rails server", "type": "Ruby", "request": "launch", "cwd": "/mnt/c/Repos/", "program": "rails", "pathToRDebugIDE": "~/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide", "args": ["server"] } } 

Visual Studio Code的Ruby扩展只能使用cmd来启动调试器。 因此,您需要一个.cmd包装器来调用rdebug-ide。

安装RubyDevKit for Windows应提供必要的包装器,但您也可以使用下面的行。 它基本上看起来像这样:

 @ECHO OFF IF NOT "%~f0" == "~f0" GOTO :WinNT ECHO.This version of Ruby has not been built with support for Windows 95/98/Me. GOTO :EOF :WinNT @ruby.exe "%~dpn0" %* 

(这将使用PATH中的ruby.exe来执行名为.bat文件的脚本,但没有扩展名。)

将它放在与rdebug-ide相同的位置,并将其命名为rdebug-ide.bat 。 调整你的launch.json,使pathToRDebugIDE指向这个.bat文件(使用完整的Windows路径),并确保ruby在你的PATH中。

我目前正在使用这个设置与cygwin安装ruby,rdebug-ide,rails等。