rbenv、fish 與 VSCode 設置之路
在最新的 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=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。