在最新的 VSCode 1.3.1 版裡,Integrated Terminal 變得更加好用,但由於上游套件 xterm.js 的緣故,zsh 還是有無法捲動的問題。不過作為一個 Rails 開發者,VSCode 已經是個足夠好用的、足矣媲美 Sublime Text 的編輯器了。為了能夠在 VSCode 開發 Rails,特別對目前的開發環境做出調整。

由 RVM 轉換至 rbenv

聽聞 rbenv 相較 rvm 來說,是對系統較為乾淨的 ruby 版本管理工具。就趁這次更新開發環境一起重置吧!

移除 rvm

套件也內建了一鍵移除的方式:

rvm implode

做完之後也可以將 rvm 剩餘的檔案移掉:

rm -rf ~/.rvm

安裝 rbenv

參照了專案官網的說明,只要把該 repo clone 下來,設置好 PATH 變數,在為 shell 加上一些設定便可以開始安裝 ruby 了。在 OS X 環境又更容易,只要用 Homebrew 一鍵安裝便成。

brew install rbenv

裝完之後就可以發現 rbenv 已經被裝到 Homebrew 的可執行位置了,可以跑 which 指令檢驗

which rbenv
# => /usr/local/bin/rbenv

在 Homebrew 安裝跑完之後,安裝腳本會提示已在 shell profile(.zshrc/.profile/.bash_profile) 加上 rbenv 初始化腳本,預設內容如下:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

第二行的 rbenv init - 指令輸出,在你一般開啟的 Terminal 會跑出:

export PATH="/Users/USERNAME/.rbenv/shims:${PATH}"
export RBENV_SHELL=zsh
source '/usr/local/Cellar/rbenv/1.0.0/libexec/../completions/rbenv.zsh'
# ... 下面一串

不過在 VSCode 內建終端機卻會跑出:

export PATH="/usr/local/opt/rbenv/shims:${PATH}" # 就這行不同
export RBENV_SHELL=zsh # ... 下面一樣

大概是執行權限不同的關係吧,rbenv 執行的位置不同也會讓 gem/bundler 裝到不同的位置,為了方便起見,一律設成一般終端機跑出來的那串。把下面這串貼到 ~/.zshrc 最下面就是。

export PATH="/Users/USERNAME/.rbenv/shims:${PATH}"
export RBENV_SHELL大专栏  rbenv、fish 與 VSCode 設置之路>=zsh
source '/usr/local/Cellar/rbenv/1.0.0/libexec/../completions/rbenv.zsh'
command rbenv rehash 2>/dev/null
rbenv() {
local command
command="$1"
if [ "$#" -gt 0 ]; then
shift
fi case "$command" in
rehash|shell)
eval "$(rbenv "sh-$command" "$@")";;
*)
command rbenv "$command" "$@";;
esac
}

若是 fish 就貼下面這個:

setenv PATH '/Users/USERNAME/.rbenv/shims' $PATH
setenv RBENV_SHELL fish
. '/usr/local/Cellar/rbenv/1.0.0/libexec/../completions/rbenv.fish'
command rbenv rehash 2>/dev/null
function rbenv
set command $argv[1]
set -e argv[1] switch "$command"
case rehash shell
. (rbenv "sh-$command" $argv|psub)
case '*'
command rbenv "$command" $argv
end
end

裝 ruby

rbenv install 2.3.1
rbenv global 2.3.1
gem install bundler bundle install

搞定!

Pow 的額外設定

其實在 Pow 的 wiki 就有解答,不過因為我又對 rbenv 做了 PATH 的改動,所以設定也不太一樣。

打開 ~/.powconfig 並貼入

export PATH="/Users/USERNAME/.rbenv/shims:/Users/USERNAME/.rbenv/shims/bin:$PATH"

然後重啟 pow service

touch ~/.pow/restart.txt

將主要 shell 由 zsh 換成 fish

zsh 有著非常有名的 oh-my-zsh 設定檔管理框架,fish 底下也有個好用的叫 fisherman。不過我終究是沒有把系統預設的 shell 換掉(chsh 指令),因為挺多工具與 fish 不相容。

fish 啟動速度飛快,帶我重回還沒有裝一堆 zsh 套件的美好往日時光。

VSCode

講來講去這篇好像跟 VSCode 沒啥關係耶?那就附張截圖好了,VSCode 也是十分優秀的 Markdown 編輯器,內建了快速的 Preview,碼 code、寫文件、Terminal、Task Runner 全都內建了,還夠輕量快速,Extension 也陸續多了起來,還真不好挑剔啊 XD。

rbenv、fish 與 VSCode 設置之路的更多相关文章

  1. 安卓中級教程(5):ScrollView與refreshable之間的設置

    設置向下拉動更新. package com.mycompany.Scroll_test; import android.app.*; import android.os.*; import andro ...

  2. 設置Linux保留物理內存並使用 (1)

    在Linux系統中可以通過memblock來設置系統保留物理內存,防止這些內存被內存管理系統分配出去. 作者: 彭東林 郵箱: pengdonglin137@163.com 平臺 硬件平臺: TQ24 ...

  3. Linux光纖卡配置,磁盤掛載,多路徑設置

    Linux光纖卡配置 1.首先根據光纖卡類型加載對應的驅動.我這裡常用的是QLogic和Brocade光纖卡 [root@rhcsasm2 host3]# lspci | grep Fibre   - ...

  4. jqmobi 的一些設置

    jqmobi version=2.1; 不是 version =3.0: 好吧,我用了jqmobi 差不多半年了,我竟然連 官方的文檔都沒有看完,怪不得我走了多少的彎路.....哎!!!! 1.隱藏 ...

  5. D2GS1.11 的DC Key的相關設置指南

    D2GS1.11版本暗黑戰網服務器DC Key 的相關設置是保存在 D2Server.ini 文件中的.在這裡我列舉跟DC Key 有關的配置條款. (以下內容具存在於D2Server.ini 文件中 ...

  6. 組裝工廠設置IQC的目的

    在電子組裝工廠的組織裡,一般都會有 IQC (Incoming Quality Control) 這個單位,台灣稱之為「入(進)料管控」,大陸稱之為「來料管控」,其最主要目的在攔檢所有買進材料是否符合 ...

  7. jquery easyui 1.3.4 datagrid pageNumber 設置導致兩次請求的解决方案

    $('#table').datagrid({ url: '/get/data/path/to/your/server', pageNumber: , pageSize: , ... }); 當手動設置 ...

  8. Linux下安裝Oracle database內核參數設置

    參考:1529864.1 ************************************************** RAM                                  ...

  9. emc 郵件設置

    1. 進入Data Domain管理界面后,在Administration--->Settings界面.點擊More mail Server--->Set Mail Server---&g ...

随机推荐

  1. 致 Python 初学者们!

    ​ 前言 在 Python 进阶的过程中,相信很多同学应该大致上学习了很多 Python 的基础知识,也正在努力成长.在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫.我非常理解你们所面临的处 ...

  2. Java--平台版本、跨平台、JVM、JDK、JRE

    Java2平台版本 Java2平台包括标准版(J2SE).企业版(J2EE)和微缩版(J2ME)三个版本 J2SE 包含那些构成Java语言核心的类. J2EE 包含J2SE 中的类,并且还包含用于开 ...

  3. 在Eclipse下远程调试Beagleboneblack

    安装调试器 1. gdbserver 2. gdb-multiarch 建立工程 新建一个cpp工程,ToolChains选择Cross GCC 这里使用的是arm-linux-gnueabihf-的 ...

  4. 吴裕雄--天生自然 pythonTensorFlow图形数据处理:队列操作

    import tensorflow as tf #1. 创建队列,并操作里面的元素. q = tf.FIFOQueue(2, "int32") init = q.enqueue_m ...

  5. Java之异常的处理(try-catch)

    import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java. ...

  6. Opencv笔记(十四)——边缘检测算法canny

    简介 Canny 边缘检测算法 是 John F. Canny 于 1986年开发出来的一个多级边缘检测算法,也被很多人认为是边缘检测的 最优算法,它是由很多步构成的算法. 最优边缘检测的三个主要评价 ...

  7. hm nsis edit请求的操作需要提升

    第一次用nsis做安装包,编译运行出现这个问题,解决办法:管理员身份运行即可

  8. 大厂面试题:今天复试百度PHP工程师

    今天下午来到北京百度科技园进行复试PHP工程师岗位. 面试官问了很多问题,我大概整理回忆下: 1.Redis秒杀实现? redis队列解决抢购高并发的原理: 在程序跟数据库之前呢我们可以利用redis ...

  9. 编译原理_P1002

    . 词法分析 1.1 词法记号及属性 词法记号.模式.词法单元 记号名 词法单元列举    模式的非形式描述 if if 字符i,f for for     字符f,o,r relation < ...

  10. 2019 年百度之星·程序设计大赛 - 初赛一 1005 Seq(数学规律)

    http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=861&pid=1005 Sample Input Sampl ...