over 3 years ago

系統:

Mac OS X Yosemite 10.10.2
Ruby 2.2.0

相關連結

iTerm2 ( http://iterm2.com/ )
oh-my-zsh ( https://github.com/robbyrussell/oh-my-zsh )
SOLARIZED ( http://ethanschoonover.com/solarized )

前言

Mac 終端機是開發者總是在使用的工具,如果有辦法讓它變得更強大、更美化,在開發的時候,能夠更快速,介面看起來也賞心悅目,這樣在開發的效率上不就大大提升了呢?

本篇就來介紹如何讓 Mac 的終端機如何更強大、更美化!!

設定步驟如下

1. 安裝 iTerm

前往 iTerm2 下載安裝。

2. 安裝 oh-my-zsh

$ curl -L http://install.ohmyz.sh | sh

3. 設定 Theme

打開 ~/.zshrc 找到 ZSH_THEME="robbyrussell" 之後,修改 robbyrussellagnoster

4. 調整顏色

前往 SOLARIZED 下載,下載完解壓縮之後,選取 solarized/iterm2-colors-solarized/Solarized Dark.itermcolors 執行。

之後,至 iTerm > Preferences... > Profiles > Colors 設定,Load Presets...Solarized Dark

5. 安裝字型

前往 Powerline fonts 下載字型 ( 點擊 Download ZIP ),下載完解壓縮之後,選取 powerline-fonts-master/Menlo/Menlo Regular for Powerline.otf 安裝。

之後,至 iTerm > Preferences... > Profiles > Text 設定,Regular FontNon-ASCII Font14ptMenlo Regular for Powerline

6. 新增顯示 RVM 管理的 Ruby version 和 Gemset

在開發 Rails 的時候可能會設定個別使用的 Gemset,這時候 我們就透過 agnoster Theme,來修改我們想要的 Theme。

1. 複製 agnoster Theme 檔案

檔案位置在 ~/.oh-my-zsh/themes/agnoster.zsh-theme,複製至自己喜好的地方並改名。

2. 新增判斷 RVM 管理的 Ruby version 和 Gemset 程式碼

檔案任意地方新增以下 code:

# Ruby version

prompt_ruby() {
  grep 'rails' 'Gemfile' >/dev/null 2>&1
  if [ $? -eq 0 ]; then
    local ruby_version=''
    if which rvm-prompt &> /dev/null; then
      ruby_version="$(rvm-prompt i v g)"
    else
      if which rbenv &> /dev/null; then
        ruby_version="$(rbenv version | sed -e "s/ (set.*$//")"
      fi
    fi
    prompt_segment red default "$ruby_version"
  fi
}

修改檔案 build_prompt() 函式內容:

## Main prompt

build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
  prompt_context
  prompt_dir
  prompt_ruby
  prompt_git
  prompt_hg
  prompt_end
}

這樣就搞定顯示 Ruby version 和 Gemset。

7. 修改裝置名稱的部分

一樣是剛剛的檔案,找到以下的 code

# Context: user@hostname (who am I and where am I)

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m"
  fi
}

修改為

# Context: user@hostname (who am I and where am I)

prompt_context() {
  if [ $DEFAULT_USER ]; then
    prompt_segment blue 7 "%(!.%{%F{yellow}%}.)$DEFAULT_USER"
  elif [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment blue 7 "%(!.%{%F{yellow}%}.)$USER@%m"
  fi
}

8. 設定顯示路徑

為了簡化顯示的路徑,讓終端機只顯示所在的目錄名稱,我們一樣打開剛剛的檔案,找到以下的 code:

# Dir: current working directory

prompt_dir() {
  prompt_segment blue black '%~'
}

修改為

# Dir: current working directory

prompt_dir() {
  prompt_segment 7 black '%c'
}

這樣終端機就只會顯示所在目錄的名稱了!!

9. 載入美化設定

打開 ~/.zshrc 在最頂部加入 DEFAULT_USER="YOUR_PREFER_NAME"

DEFAULT_USER="ChouAndy"
...
source $ZSH/oh-my-zsh.sh
...
# load my theme

source path_to_theme/your_prefer_name.zsh-theme

之後再重新 source ~/.zshrc,介面美化的部分大功告成啦,切換至 Rails app 目錄,應該可以看到以下介面:

10. 加入常用 plugins

安裝 zsh-syntax-highlighting

打開 ~/.zshrc 修改 plugins:

...
plugins=(git bundler zsh-syntax-highlighting)
...

之後,git 或 bundler 的指令就可以簡化使用,例如 gs (git status)bi (bundle install)...等等,可參考 官網 Wiki

← Cucumber for Rails - part 1 - 安裝 OS X Yosemite 10.10.2 安裝 MySQL 5.5 →
 
comments powered by Disqus