Try   HackMD

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。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →