文章目录

  • 0. Ruby官方文档
  • 1. 下载安装Ruby
  • 2. 下载安装插件
  • 3. 安装Ruby依赖
  • 4. 书写Ruby单文件下配置文件
  • 5. 尝试调试Ruby代码

这篇文章属于本人参考诸多博客、教程、文档等资料,所撰写的「Windows10上配置VS Code」系列文章之一,内容随时可能发生更新变动,欢迎关注和收藏VS Code系列配置总目录一文以作备忘。

不管怎样,获取了VS Code编辑器之后,我们将在VS Code中配置Ruby的语言学习环境,目前还缺少Ruby的编译器和解释器,缺少支持插件和配置代码……不过,有关VSCode和Ruby的配合使用,我也不是太懂,慢慢学慢慢改吧……同样的,我会在个人代码库 CodeWorld 中建立 Code_Ruby 文件夹,里面的文件夹是 Ruby_SingleRuby_Multiple ,分别存放不同的分类代码文件夹,即程序运行目标分别是单个源代码文件少数几个源代码文件的组合


0. Ruby官方文档

访问这一网站https://ruby-doc.org/,可以看到Ruby的核心API、标准库API文档、起步教程和其他乱七八糟的东西:

不过感觉排版不是很好,可以访问这一中文网站http://www.ruby-lang.org/zh_cn/documentation/作为代替/首选:


1. 下载安装Ruby

先打开Ruby中文官网http://www.ruby-lang.org/zh_cn/downloads/,点击红框位置:

进入https://rubyinstaller.org/网站:

再点击 Download 进入下载界面,右边有详细的解释。如果不知道安装哪个版本的话,建议使用 Ruby+Devkit 2.7.x (x64) 安装包,它提供了最多数量的兼容gem,且和Ruby一起安装了 MSYS2 Devkit ,可以编译具有C扩展名的gem。仅当必须使用自定义32位本机DLL或者COM对象时,才建议使用32位x86版本。

可能你不是很了解MSYS2,但是作为一个程序员,你肯定知道MinGW,而MSYS2就集成了MinGW,同时还具有其他的一些特性,例如包管理器Pacman(用过ArchLinux的应该都知道Pacman)等等,这篇文章做了更详细的区分和总结:Cygwin、MSYS、MinGW、MinGW64、MSYS2 区别。总而言之,MSYS2可以在Windows下搭建一个比较完美的类Linux环境(虽然对我而言用处不是很大),包括Bash、Vim、gcc、make等工具,都可以通过包管理器来添加和卸载。

我在这里选择的是最新版 Ruby+Devkit 3.0.1-1 (x64) 。由于官网下载太慢,很久都下载不下来,可以点击此处下载我分享的安装包资源。下载完成之后,点击运行,先接受许可:

自定义安装目录,然后勾选全部两项,点击 Install

然后选择要安装的组件,默认全部勾选,点击 Next 即可:

最后就开始了安装:

前面默认选择了MSYS2,这里也勾选这个,然后点击 Finish

出现如下界面,即使之前我在配置C++语言环境时安装了MinGW-w64,还是保险起见,此处输入3:

之后开始用GnuPG生成密钥,然后开始用 pacman 安装一系列乱七八糟的东西:

最后出现下图时,按回车退出:

打开安装文件夹可以看到整套MSYS2开发环境和MinGW64工具链。MSYS2小巧玲珑,主要以基本的Linux工具为主,还有更优秀的包管理器 pacman ,不喜欢庞大的 Cygwin 的用户可以试试MSYS2。

进入 usr/bin 目录,可以看到(随着Ruby下载安装的)MSYS2提供的包管理器 pacman ,要使用它需要将当前目录添加进环境变量:

现在,打开你的命令行,输入 ruby -v 查看Ruby的版本号,如果成功就安装成功了:

顺便试一下Pacman:


2. 下载安装插件

打开VS Code,Ctrl+Shift+X 进入扩展界面,输入Ruby安装对应插件:

安装Ruby插件后,随手新建 hello.rb

puts "Hello Ruby World!"

然后在VS Code的终端控制台中运行该程序:

注意,如果报错说——无法将“ruby”项识别为 cmdlet、函数、脚本文件或可运行程序,可能是权限不够(为什么啊?),找到VS Ccode的 Code.exe ,右键选择属性,在兼容性中勾选【以管理员权限运行此程序】,然后重启VS Code即可。


3. 安装Ruby依赖

本节参考Ruby插件对应的文档:https://github.com/rubyide/vscode-ruby/blob/main/docs/debugger.md。我们先要在控制台中输入下面几个命令,安装Ruby依赖:

gem install bundle
gem install bundler
gem install debase-ruby_core_source
gem install debase
gem install ruby-debug-ide

一口气安装如下:

如果失败,可能需要修改gem的源:

gem sources -r / --remove XXX  # 删除安装源
gem sources -a / --add XXX     # 添加源

再执行下面的两条命令,先删除原有sources 源,再添加新源,然后重新运行上述安装命令:

gem sources --remove https://rubygems.org/
gem sources -a https://mirrors.ustc.edu.cn/rubygems/

执行 rdebug-ide 查看 ruby-debug-ide 的使用参数:

> rdebug-ide
Using ruby-debug-base 0.2.5.beta2
Usage: rdebug-ide is supposed to be called from RDT, NetBeans, RubyMine, orthe IntelliJ IDEA Ruby plugin.  The command line interface toruby-debug is rdebug.Options:-h, --host HOST                  Host name used for remote debugging-p, --port PORT                  Port used for remote debugging--dispatcher-port PORT       Port used for multi-process debugging dispatcher--evaluation-timeout TIMEOUT evaluation timeout in seconds (default: 10)--evaluation-control         trace to_s evaluation-m, --memory-limit LIMIT         evaluation memory limit in mb (default: 10)-t, --time-limit LIMIT           evaluation time limit in milliseconds (default: 100)--stop                       stop when the script is loaded-x, --trace                      turn on line tracing--skip_wait_for_start        skip wait for 'start' command-l, --load-mode                  load mode (experimental)-d, --debug                      Debug self - prints information for debugging ruby-debug itself--xml-debug                  Debug self - sends information <message>s for debugging ruby-debug itself-I, --include PATH               Add PATH to $LOAD_PATH--attach-mode                Tells that rdebug-ide is working in attach mode--key-value                  Key/Value presentation of hash items--ignore-port                Generate another port--keep-frame-binding         Keep frame bindings--disable-int-handler        Disables interrupt signal handler--rubymine-protocol-extensionsEnable all RubyMine-specific incompatible protocol extensions--catchpoint-deleted-event   Enable chatchpointDeleted event--value-as-nested-element    Allow to pass variable's value as nested element instead of attribute--socket-path PATH           Listen for debugger on the given UNIX domain socket pathCommon options:-v, --version                    Show versionMust specify a script to run

如果 gem install 死活安装不上 debase 或者 ruby-debug-ide ,可以按照如下方法,从源码安装:

或者也有可能你把Ruby安装到了一个带有空格的路径下,此时最好删除原有安装目录、删除Ruby的环境变量、重新下载RubyInstaller、重新安装Ruby。要做到这一点,关键是抛弃把所有编程软件安装在一个目录下的强迫症……FxxK Ruby!!!


4. 书写Ruby单文件下配置文件

如果想要添加全局配置,可以直接在不打开文件夹运行->添加配置,然后会跳转到全局的配置文件 settings.json 中(关于用户配置和工作区配置,见此处文章)——我的 LaTeX\LaTeXLATE​X 配置代码,目前就在全局配置文件中(也许有一天我还会建立一个 Code_LaTeX 文件夹,然后把相关 TeX\TeXTE​X 文件都放进去,只是不一定转为工作区配置):

不然就像我一样,建立一个 CodeWorld/Code_Ruby 文件夹,然后打开该文件夹。类似于C/C++单文件语言学习环境的建立,这里先在其中创建一个名为 Seven_Weeks_Seven_Languages 的文件夹,用于《七周七语言》一书的学习。

然后使用运行->添加配置,(在打开文件夹且存在源文件时)自动创建 .vscode 文件夹和其中的 launch.json 文件。或者,可以点击下面的创建 launch.json 文件

VS Code会尝试自动检测你的调试环境,不过如果失败了,就需要手动选择,这里我们选择 Ruby

接着需要选择生成的那一份 configurationname ,这里选中 Debug Local File

然后就生成了一份 launch.json 配置文件,用于Ruby的调试。现在回到文件浏览器,可以发现VS Code创建了一个 .vscode 文件夹,并且添加了 launch.json 文件到工作区。
其中 launch.json 文件的内容如下:

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{ "name": "Debug Local File", "type": "Ruby", "request": "launch", "program": "${workspaceRoot}/main.rb"}]
}

这只是 configurations 数组中的一个配置,我们可以添加任意多个配置,只要它们的 name 都独一无二。经过反复修改后,我在 CodeWorld/Code_Ruby 下的 .vscode/launch.json 文件内容如下,configurations 中的注释是我自己添加的:

{ // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [ {//name是字符串形式的配置名称,显示在启动配置下拉菜单中,在配置数组中必须独一无二"name": "Debug Local File",//type是配置类型,必须是Ruby,告诉VS Code运行什么调试器"type": "Ruby",//request是请求配置类型,可以是launch(允许直接从VS Code中启动提供的程序),//或者是attach,允许你附加到远程调试会话(remote debug session)."request": "launch", //cwd调试程序时的工作目录,需要是源码文件所在的文件夹位置(program字符串指出的位置)"cwd": "${fileDirname}",//program是将要进行调试的程序的完整路径,不应该依赖于相对路径.//如果文件在你的工作区,program通常是这样一个字符串"${workspaceRoot}/path/to/script.rb"//- ${workspaceRoot} 开启在VS Code中的文件夹的路径//- ${file} 当前打开的文件(的完整路径)//- ${fileBasename} 当前打开的文件的basename(即文件名.扩展名)//- ${fileDirname} 当前打开的文件的dirname//- ${fileExtname} 当前打开的文件的扩展名"program": "${fileDirname}/${fileBasename}",//stopOnEntry设为true时调试程序将暂停在程序入口处,相当于在main上打断点"stopOnEntry": false,//showDebuggerOutput展示一些额外的输出信息到调试终端,尤其是关于rdebug-ide的运行"showDebuggerOutput": true,//args数组是程序调试时提供给程序的命令行参数,里面每个字符串都被作为一个单独参数进行传送"args": [],//env提供要在启动程序之前设置的环境变量// "env": {//     "BASE": "${fileDirname}",//     "EXT": "${fileExtname}",//     "RAILS_ENV": "test"// },//如果不是'ruby',就是Ruby可执行文件的路径,用于运行程序(在没有调试器时) //"pathToRuby": "ruby",//如果'rdebug-ide'不在PATH环境变量中,需要提供'rdebug-ide'的绝对路径值,比如"c:\ruby\rdebug-ide.bat" "pathToRDebugIDE": "rdebug-ide",//"pathToBundler": "bundle"},{"name": "Minitest - current line","type": "Ruby","request": "launch", "cwd": "${fileDirname}","program": "${fileDirname}/bin/rails","args": ["test","${file}:${lineNumber}"]},{   //仅对当前打开的测试文件运行Test::Unit"name": "Test::Unit - open test file","type": "Ruby","request": "launch","cwd": "${fileDirname}",          "program": "${file}","includes": ["test", "lib"] //使用includes在$LOAD_PATH中包含其他路径。},{   //在当前打开的文件中,对单个选定的测试运行Test::Unit "name": "Test::Unit - single selected test","type": "Ruby","request": "launch","cwd": "${fileDirname}",          "program": "${file}","includes": ["test", "lib"],"args": ["-n","${selectedText}"]},{   //这将在源文件目录下运行rails服务器,假设binstubs已经通过bundler install --binstubs安装"name": "Rails server","type": "Ruby","request": "launch","cwd": "${fileDirname}","program": "${fileDirname}/bin/rails","args": ["server"]},{   //使用传递过来的额外参数,运行所有的spec"name": "RSpec - all","type": "Ruby","request": "launch","cwd": "${fileDirname}","program": "${fileDirname}/bin/rspec","args": ["-I", "${fileDirname}","--require", "spec_helper","--require", "rails_helper","--format", "documentation",]},{   //运行RSpec,不过只在当前打开的spec文件上"name": "RSpec - active spec file only","type": "Ruby","request": "launch","cwd": "${fileDirname}","program": "${fileDirname}/bin/rspec","args": ["-I","${fileDirname}","${file}"]}, {   //运行所有cuke"name": "Cucumber","type": "Ruby","request": "launch","cwd": "${fileDirname}","program": "${fileDirname}/bin/cucumber"},// { //用于远程调试的配置,暂时用不到//     "name": "Listen for rdebug-ide",//     "type": "Ruby",//     "request": "attach",//     "remoteHost": "127.0.0.1",//     "remotePort": "1234",//     "remoteWorkspaceRoot": "${workspaceRoot}"// },]
}

5. 尝试调试Ruby代码

一份十分简单的Ruby代码:

rec = {"name"=>"first", "label"=>"second"}
puts "#{rec}"
puts "#{rec.size()}"
puts "Hello Ruby World!"

在运行和调试图标下,选择 Debug Local File

点击这个绿色的小三角,开始调试程序:

然后前进一步:

前进到程序结束:

现在我们就可以运行和调试Ruby程序了!

【VS Code】Windows10下VS Code配置Ruby语言环境相关推荐

  1. 【VS Code】Windows10下VS Code配置Haskell语言环境

    文章目录 0. Haskell官方资料 1. 下载安装Stack 2. 安装GHC前的准备活动 (1) 直接下载法 (2) 配置镜像源法 3. 实际安装GHC 4. Stack的具体使用 5. 安装低 ...

  2. yum安装ruby_CentOS 7下配置Ruby语言开发环境的方法教程

    本文跟大家分享的是在CentOS 7下配置Ruby语言开发环境的方法教程,分享出来供大家参考学习,下面来看看详细的介绍: 安装Ruby 2.2 CentOS7存储库中的Ruby版本为2.0,但如果需要 ...

  3. 【Python】Mac下Sublime Text3配置Python3开发环境

    我采用的第二种方案 1 [Python]Mac下Sublime Text3配置Python3开发环境 https://blog.csdn.net/qq_33304418/article/details ...

  4. IDEA下使用maven配置Spark开发环境

    IDEA下使用maven配置Spark开发环境 1.安装Java 2.配置环境变量 3.配置Hadoop环境 4.安装Scala插件 5.配置maven 4.Spark编程 Spark测试 使用到的软 ...

  5. win10系统下GTX1080TI显卡配置tensorflow运行环境(都是泪系列)

    win10系统下GTX1080TI显卡配置tensorflow-gpu运行环境(都是泪系列) 原来在Ubuntu16.04系统下装过一次运行环境,现在因为项目需求在win10下重装还是经过了一番波折, ...

  6. VScode配置C语言环境 亲测 可用!!!

    VScode配置C语言环境 亲测 可用!!! 一.首先下载vscode,地址:https://code.visualstudio.com/ 此时我已经安装好了 二.对VSCode进行汉化安装插件Chi ...

  7. VSCode快速配置C语言环境

     1.在VSCode中安装C/C++插件  2.下载mingw64 MinGW-w64官方网站首页 1.找到downloads 2.找到SourceForge 3.找到一个合适的版本(我这里是下拉找到 ...

  8. Mac VSCode配置C语言环境(可以调试)

    Mac VSCode配置C语言环境 c_cpp_properties.json tasks.json launch.json 新建一个文件夹,用vscode,然后再新建一个test.c文件. #inc ...

  9. VSCode配置C语言环境(完整版)

    基本步骤 要在VSCode中配置C语言环境,我们首先可能要一个VSCode(废话),所以先下载安装一个VSCode: 然后肯定需要相关插件,因为VSCode不能直接拿来写C: 然后任何语言的程序在运行 ...

  10. “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境

    Visual Studio Code 免费跨平台文本编辑器,插件资源丰富,我把其作为Debug的首选. 下载地址:https://code.visualstudio.com/Download 安装之后 ...

最新文章

  1. Axure RP 8.0软件安装教程
  2. [待]-optee的native_intr_handler中断处理流程
  3. linux 易语言窗口程序_浅谈Linux入门的基本知识
  4. PHPStorm无法保存个人设置 ctrl左键无法找到类
  5. JVM解释器和编译器
  6. Memcached 运行状态
  7. apache2 配置php,Windows配置PHP5与Apache2
  8. C# 装箱和拆箱、理论概念(非原创)
  9. 为什么测试喜欢ie_为什么我现在喜欢测试,以及为什么您也应该如此。
  10. Web 前沿——HTML5 Form Data 对象的使用(转)
  11. avr单片机led数码管六位动态显示时分秒c语言程序,AVR单片机控制8段LED数码管同时显示 - AVR单片机8位数码管显示的程序实现(两种方法介绍)...
  12. php 服务器安装,php服务器安装笔记
  13. 【转载】浏览器测试工具有哪些 浏览器安全性能内核兼容测试工具推荐
  14. 在Xcode以及Interface Builder下简单使用Cocoa
  15. [转]教你如何在博客园放“可运行代码
  16. python函数可以返回多个函数值吗_python - 函数返回多个值是pythonic吗?
  17. 反激式开关电源电路测试记录(二)
  18. 基于ssm的电动车实名制挂牌管理系统
  19. EDI REMADV报文详解
  20. tv3描述文件代理服务器,超强悍技术贴!Apple TV3复活DNS的刷机全教程

热门文章

  1. Android系统裁剪:手把手教你如何进行系统裁剪
  2. android 一种键盘不能调起的解决方法
  3. 【破解】PyCharm2018专业版激活(激活到2100年)
  4. 计算机制造商logo,如何更改系统oem制造商logo等信息
  5. joomla网页加速插件
  6. 爱国者u盘linux驱动,爱国者u盘驱动
  7. Actors 基于消息驱动的异步编程模型
  8. ipad如何与手机微信连接服务器地址,如何设置微信在手机和ipad同步 - 卡饭网
  9. 张小龙2018微信公开课超时演讲,总结微信8年
  10. ASP.NET 安全认证(三)