【VS Code】Windows10下VS Code配置Ruby语言环境
文章目录
- 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_Single
和 Ruby_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\LaTeXLATEX 配置代码,目前就在全局配置文件中(也许有一天我还会建立一个 Code_LaTeX
文件夹,然后把相关 TeX\TeXTEX 文件都放进去,只是不一定转为工作区配置):
不然就像我一样,建立一个 CodeWorld/Code_Ruby
文件夹,然后打开该文件夹。类似于C/C++单文件语言学习环境的建立,这里先在其中创建一个名为 Seven_Weeks_Seven_Languages
的文件夹,用于《七周七语言》一书的学习。
然后使用运行->添加配置,(在打开文件夹且存在源文件时)自动创建 .vscode
文件夹和其中的 launch.json
文件。或者,可以点击下面的创建 launch.json 文件:
VS Code会尝试自动检测你的调试环境,不过如果失败了,就需要手动选择,这里我们选择 Ruby
:
接着需要选择生成的那一份 configuration
的 name
,这里选中 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语言环境相关推荐
- 【VS Code】Windows10下VS Code配置Haskell语言环境
文章目录 0. Haskell官方资料 1. 下载安装Stack 2. 安装GHC前的准备活动 (1) 直接下载法 (2) 配置镜像源法 3. 实际安装GHC 4. Stack的具体使用 5. 安装低 ...
- yum安装ruby_CentOS 7下配置Ruby语言开发环境的方法教程
本文跟大家分享的是在CentOS 7下配置Ruby语言开发环境的方法教程,分享出来供大家参考学习,下面来看看详细的介绍: 安装Ruby 2.2 CentOS7存储库中的Ruby版本为2.0,但如果需要 ...
- 【Python】Mac下Sublime Text3配置Python3开发环境
我采用的第二种方案 1 [Python]Mac下Sublime Text3配置Python3开发环境 https://blog.csdn.net/qq_33304418/article/details ...
- IDEA下使用maven配置Spark开发环境
IDEA下使用maven配置Spark开发环境 1.安装Java 2.配置环境变量 3.配置Hadoop环境 4.安装Scala插件 5.配置maven 4.Spark编程 Spark测试 使用到的软 ...
- win10系统下GTX1080TI显卡配置tensorflow运行环境(都是泪系列)
win10系统下GTX1080TI显卡配置tensorflow-gpu运行环境(都是泪系列) 原来在Ubuntu16.04系统下装过一次运行环境,现在因为项目需求在win10下重装还是经过了一番波折, ...
- VScode配置C语言环境 亲测 可用!!!
VScode配置C语言环境 亲测 可用!!! 一.首先下载vscode,地址:https://code.visualstudio.com/ 此时我已经安装好了 二.对VSCode进行汉化安装插件Chi ...
- VSCode快速配置C语言环境
1.在VSCode中安装C/C++插件 2.下载mingw64 MinGW-w64官方网站首页 1.找到downloads 2.找到SourceForge 3.找到一个合适的版本(我这里是下拉找到 ...
- Mac VSCode配置C语言环境(可以调试)
Mac VSCode配置C语言环境 c_cpp_properties.json tasks.json launch.json 新建一个文件夹,用vscode,然后再新建一个test.c文件. #inc ...
- VSCode配置C语言环境(完整版)
基本步骤 要在VSCode中配置C语言环境,我们首先可能要一个VSCode(废话),所以先下载安装一个VSCode: 然后肯定需要相关插件,因为VSCode不能直接拿来写C: 然后任何语言的程序在运行 ...
- “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境
Visual Studio Code 免费跨平台文本编辑器,插件资源丰富,我把其作为Debug的首选. 下载地址:https://code.visualstudio.com/Download 安装之后 ...
最新文章
- Axure RP 8.0软件安装教程
- [待]-optee的native_intr_handler中断处理流程
- linux 易语言窗口程序_浅谈Linux入门的基本知识
- PHPStorm无法保存个人设置 ctrl左键无法找到类
- JVM解释器和编译器
- Memcached 运行状态
- apache2 配置php,Windows配置PHP5与Apache2
- C# 装箱和拆箱、理论概念(非原创)
- 为什么测试喜欢ie_为什么我现在喜欢测试,以及为什么您也应该如此。
- Web 前沿——HTML5 Form Data 对象的使用(转)
- avr单片机led数码管六位动态显示时分秒c语言程序,AVR单片机控制8段LED数码管同时显示 - AVR单片机8位数码管显示的程序实现(两种方法介绍)...
- php 服务器安装,php服务器安装笔记
- 【转载】浏览器测试工具有哪些 浏览器安全性能内核兼容测试工具推荐
- 在Xcode以及Interface Builder下简单使用Cocoa
- [转]教你如何在博客园放“可运行代码
- python函数可以返回多个函数值吗_python - 函数返回多个值是pythonic吗?
- 反激式开关电源电路测试记录(二)
- 基于ssm的电动车实名制挂牌管理系统
- EDI REMADV报文详解
- tv3描述文件代理服务器,超强悍技术贴!Apple TV3复活DNS的刷机全教程