VSCode + WSL 2 + Ruby環(huán)境搭建圖文詳解
vscode配置ruby開發(fā)環(huán)境
vscode近年來(lái)發(fā)展迅速,幾乎在3年之間就搶占了原來(lái)vim、sublime text的很多份額,猶記得在2015-2016年的時(shí)候,ruby推薦的開發(fā)環(huán)境基本上都是vim和sublime text,然而,隨著vscode的發(fā)展,vscode下ruby的開發(fā)體驗(yàn)已經(jīng)非常不錯(cuò)?,F(xiàn)在基本上使用win 10 wsl2 + vscode + windows terminal的體驗(yàn)已經(jīng)不遜于mac + vim (sublime) + item 2的體驗(yàn)了
總體步驟
使用win10專業(yè)版配置ruby開發(fā)環(huán)境大致分為以下幾步:
- 開啟win10 wsl功能
- 升級(jí)wsl2
- 安裝ubuntu
- 安裝ruby(rvm)
- 安裝vscode
- 安裝vscode wsl擴(kuò)展
- 安裝vscode ruby相關(guān)擴(kuò)展
經(jīng)過(guò)以上7步就可以開始愉悅的ruby開發(fā)了,再開始之前,可以先看個(gè)效果圖。
1. 開啟win10 wsl功能
ruby對(duì)Linux和Mac比較友好,在windows下很多第三方庫(kù)要配合mingw或msys2才能安裝,不過(guò)好在windows 10提供了Linux子系統(tǒng),在win10 2004版本中wsl也升級(jí)到了wsl2,速度更快,功能更完善。
要使用wsl2需要先在控制面板中開啟wsl功能:
- 適用于Linux的Windows子系統(tǒng)
- 虛擬機(jī)平臺(tái)
2. 升級(jí)wsl2
目前wsl2還需要安裝一個(gè)內(nèi)核升級(jí)包,具體可參考微軟說(shuō)明:
更新包安裝完成后,輸入命令
wsl --set-default-version 2
3. 安裝Ubuntu
在微軟應(yīng)用商店安裝Ubuntu,當(dāng)前Ubuntu版本為20.04 LTS
安裝完成以后,配置Ubuntu默認(rèn)為wsl2
# 查看 wsl --list --verbose # 設(shè)置 wsl --set-version Ubuntu 2
4. 安裝ruby
在Linux下安裝ruby有多種方法,比較主流的方法是RVM,不過(guò)為了簡(jiǎn)單起見,我直接通過(guò)ubuntu的apt工具進(jìn)行了安裝。
關(guān)于RVM的安裝可參考如下網(wǎng)站:
通過(guò)APT安裝,輸入下列命令即可
sudo apt install ruby ruby-dev ri ruby-bundle
安裝完成以后需要配置gem國(guó)內(nèi)鏡像,參考如下網(wǎng)址:
輸入下列命令
# 設(shè)置gem source gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ # 查看gem source gem sources -l # 設(shè)置bundle bundle config mirror.https://rubygems.org https://gems.ruby-china.com
5. 安裝vscode
vscode直接在官網(wǎng)下載安裝即可,這里我選擇了System Installer
6. 安裝vscode wsl擴(kuò)展
vscode安裝完成以后,可以在plugin中找到Remote - WSL擴(kuò)展,點(diǎn)擊安裝即可
7. 安裝vscode ruby相關(guān)擴(kuò)展
直接在plugin中搜索ruby在wsl中安裝下列五個(gè)擴(kuò)展即可
- Peng Lv/Ruby
- Castwide/Ruby Solargraph(Language Server)
- misogi/ruby-rubocop(Lint)
- Simple Ruby ERB
- endwise
其中,ruby solargraph
和rubocop
除了安裝擴(kuò)展,還需要通過(guò)gem安裝第三方包
sudo gem install rubocop sudo gem install solargraph
重新加載vscode-wsl就可以愉快的使用ruby language進(jìn)行開發(fā)了
vscode使用
在使用上基本只要require了相應(yīng)的庫(kù),就solargraph就會(huì)對(duì)require的庫(kù)中涉及的類和模塊進(jìn)行提示,非常方便。唯一有問(wèn)題的地方就是require的時(shí)候沒(méi)有提示,這可能就需要自己記一下庫(kù)的名稱,不過(guò)相比于原來(lái)已經(jīng)好太多了,應(yīng)該說(shuō)在可以接受的范圍內(nèi)。
1. 如果安裝了新的第三方庫(kù)會(huì)提示嗎?
如果安裝了sinatra這樣的庫(kù),vscode-ruby如何給出提示呢?只需要Ctrl + Shift + P,選擇solargraph: build new gem documention
即可
2. rubocop如何使用?
rubocop是一個(gè)Ruby Lint工具,可以進(jìn)行Ruby代碼風(fēng)格檢查,并能夠自動(dòng)修復(fù),只需要Ctrl + Shift + P,選擇Ruby: autocorrect by rubocop
即可
3. 常用類型注釋
ruby是動(dòng)態(tài)強(qiáng)類型語(yǔ)言,由于不需要指定函數(shù)返回值類型,這導(dǎo)致IDE無(wú)法自動(dòng)推斷一些變量的類型。目前Python、PHP、TypeScript都在不斷的強(qiáng)化類型以方便IDE進(jìn)行靜態(tài)檢查。IDE只有在知道類型的情況下才能準(zhǔn)確地進(jìn)行智能提示。
在ruby 2當(dāng)中,我們可以通過(guò)類型注釋的方式增強(qiáng)IDE推斷能力。常見的類型注釋可參考YARD項(xiàng)目
下面代碼給出了一些示例。
require 'socket' server = TCPServer.new 2000 loop do # 代碼塊參數(shù)類型注釋 # @param {TCPSocket} client Thread.start(server.accept) do |client| client.puts 'hello !' client.puts "Time is #{Time.now}" client.close end end server = TCPServer.new 2000 loop do # 變量注釋 # @type {TCPSocket} client client = server.accept end # 函數(shù)參數(shù)和返回值注釋,數(shù)組類型 # @param {Array(Integer)} nums # @param {Integer} target # @return {Array(Integer)} def two_sum(nums, target) hash_nums = {} result = [] nums.each_with_index do |num, index| hash_nums[num] = index end nums.each_with_index do |num, index| another = target - num if hash_nums[another] && hash_nums[another] != index result.push(index, hash_nums[another]) break end end result end
到此這篇關(guān)于VSCode + WSL 2 + Ruby環(huán)境搭建圖文詳解的文章就介紹到這了,更多相關(guān)VSCode WSL 2 Ruby環(huán)境搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何部署kubernetes-dashboard改成http免密登錄
這篇文章主要介紹了如何部署kubernetes-dashboard改成http免密登錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03MobaXterm上傳下載文件、文件夾到服務(wù)器上的操作方法
這篇文章主要介紹了MobaXterm上傳下載文件、文件夾到服務(wù)器上的操作方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07asp php 清空access mysql mssql數(shù)據(jù)庫(kù)的代碼
php清空mysql asp情況access或mssql2008-12-12MobaXterm遠(yuǎn)程連接Linux服務(wù)器(Ubuntu)圖文教程
這篇文章主要為大家介紹了MobaXterm遠(yuǎn)程連接Linux服務(wù)器(Ubuntu)的相關(guān)教程,文中通過(guò)圖文進(jìn)行了詳細(xì)的總結(jié),需要的小伙伴可以收藏下2023-08-08多種語(yǔ)言下獲取當(dāng)前頁(yè)完整URL及其參數(shù)
多種語(yǔ)言下獲取當(dāng)前頁(yè)完整URL及其參數(shù)...2007-04-04刪除SVN三種方法delSvn(windows+linux)
今天想清除目錄下的SVN信息,在網(wǎng)上找了找,說(shuō)是有三種方法2012-03-03提示“處理URL時(shí)服務(wù)器出錯(cuò)”和“HTTP 500錯(cuò)誤“的解決方法
關(guān)于提示“處理URL時(shí)服務(wù)器出錯(cuò)”和“HTTP 500錯(cuò)誤“的解決方法,需要的朋友可以參考下。2009-11-11