Skip to main content

Command Palette

Search for a command to run...

客製 Mac 的 CLI

Published
1 min read
客製 Mac 的 CLI

UPDATE:

後來我改用 prezto 來取代 ohmyzsh,功能跟佈景主題比較少,但啟動速度較快.

Further Update:

再後來就用純 zshrc + zshenv 改了。可以參考 我的 dotfiles


之前答應的事欠很久,就用這篇來還吧。

身為 Ruby/Rails 開發者,每天跟 Command Line Interface (CLI) 混在一起是再正常也不過的了。

之所以買 Mac,就是因為 Mac 的 CLI 跟 Windows 渣一般的命令提示字元不是同一個等級的東西。即使如此,要是每次打開內建的終端機,都看到是下圖這個樣子,也很難不心生畏懼一下的。

Original OSX CLI

既然是每天拿來吃飯的工具,我自己用了 iTerm2,Oh My ZSH,再選一個喜歡的 monospace 字體,把它弄成這樣:

Prettier OSX CLI

monospace 字體

好用的 monospace 字體其實蠻多的,可以從這裡挑一個。基本上就是 1lI0oO 要分的清楚,其它就是個人喜好了。我目前用的是 Source Code Pro,之前則是 Bitstream vara sans mono

iTerm2

iTerm2 不是必要的,但它提供了原生的 Terminal.app 所沒有的幾個好用功能:

  1. command + click to open file
  2. Split pane view
  3. Hotkey Instant terminal anywhere
  4. Highlight word when searching
  5. Mouseless copy
  6. Paste history

官網下載後解壓縮,然後丟到 Application 裡。

執行 iTerm2,到 Preference 改 Profiles => Default => Text 選擇你剛裝好的字體。

進階自訂選項

SMYCKrailscasts theme 都是蠻不錯的配色。下載後點兩下匯入,再去 Preference 改 Profiles => Default => Colors。

oh-my-zsh

oh-my-zsh 讓你可以不用再辛苦的手刻 config file,就內建一堆好用的 plugin(*註), 還提供一堆主題讓你挑選。因為我比較喜歡 zsh 的補完功能,如果你還是想用 Mac 預設的 bash,bash-it 看來可以做到類似的事。但因為我沒用過,所以請自行踩雷。

安裝 oh-my-zsh 的方式,就是打開剛剛裝好的 iTerm2 ( Terminal.app 也可以),貼上這行指令:

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

更多 Oh My ZSH 的設定可以參考 RailsCasts 的影片

進階自訂選項

zshthem 挑一個順眼的主題,記下上方的名字。(裡面沒有列出全部可用的主題,像是很多人愛用,但是需要特殊字體的 agnoster)。我用的是 af-magic。

修改 ~/.zshrc ,把 ZSH-THEME="xxxxx" 的xxxxx改成你剛剛記下來的字,儲存。然後回到 iTerm2,輸入 source ~/.zshrc


提醒

  • ~/.zshrc 底下的 plugins="(.....)" 千萬要慎選。看清楚 ~/.oh-my-zsh/plugins/ 裡的相應的檔案內容。我曾經被 bundler plugin 搞掉好幾個小時。

  • 指令上色是用 zsh-syntax-highlighting 做的。 想要的話就參考連結裡的說明。

More from this blog

聊聊 Elixir 中的 type

最近有幾位朋友分別來問 Elixir 的 type 的問題,想說中文世界好像沒有比較完整的東西,就把知道的東西整理出來。 (目前) Elixir 的 type 能做什麼? tl;dr: 最主要是文件,然後在某種程度下防止錯誤。 我覺得這應該是在研究 Elixir 的 type 時最需要知道的事情了。不像 Haskell 及 F# 這種以型別著稱的 ML 系語言,Elixir / Erlang 本質上是個動態語言,所有與型別有關的標註都會被編譯器忽略。而 Erlang 內建的型別檢查工具 dia...

Oct 18, 20222 min read

Steam 上的程式教學類遊戲

農曆年期間比較有空,玩了一些之前買的遊戲。這次特別試了幾個標榜讓不會寫程式的人學寫程式的遊戲。分享一下試玩的心得。 1. 7 Billion Humans 考慮到劇情的話我最喜歡的是 7 Billion Humans。它用拖拉語法的方式下指令,一開始還蠻好上手的,但是因為只有 goto 那樣的結構,而操作的時候又是一次對所有的 worker 下指令,所以常常要想一下執行後每個人運作的順序。但是介面有正體中文,以「想要體驗一下寫程式大概是怎麼一回事」來說還蠻適合的。 2. while Tru...

Feb 24, 20201 min read

Let's (re)start from here.

最近的時間大半都花在這上面了。 算算應該是第五次弄部落格系統。算一下扣除上古時期用現成的之外,每個系統平均各寫六篇文章,也都撐不過兩年。前幾個分別用了 Refinery CMS -> jekyll -> middleman -> jekyll。想來架系統的總時數應該超過寫文章的時間 XD 而這次用上了 Gatsby + tailwindcss,除了恢復一下 GraphQL 的手感之外,這次還挑戰了不套別人做的版型,自己把類似上一個部落格的 style 刻出來。想說來分享一下這些技術的感想: G...

Jan 11, 20201 min read

Mostly Functional

31 posts

/.(ex|jsx?|rb|hs|rs|py)/, A father, a bookworm, a pluviophile. Co-organizer of http://Elixir.tw. Learning Satir, coaching & mediation.