使用 fish 打造超棒用戶體驗終端機:安裝篇

使用 fish shell 打造超棒用戶體驗終端機使用 fish shell 打造超棒用戶體驗終端機

好的終端機帶你上天堂 為了加速你的工作效率,你一定要試試 fish shell。全名為 Friendly Interactive Shell,跟當紅的 bashzsh 相比算是小眾,但由於它一裝完「原廠」即有超優使用者體驗,造福那些不需要高度訂製 .bashrc.zshrc 設定檔的懶人。因為無需設定就非常好用,你一定會愛死它。

fish shell 超方便自動補齊fish shell 超方便自動補齊

fish 擁有超強自動補齊的功能,透過歷史紀錄來瞭解你的語法,在重複敲進相同指令時會提出建議,建議的字體以灰色顯示。不僅如此,在使用指令時會變色,預知你指令是否正確。說了這麼多,先來搞安裝,不會太久。

安裝 fish shell

我個人使用 Mac OS 蘋果作業系統,而且 fish 在 Mac 上面運作的非常好,其他平台可參見 fish 官方網站。Mac 上直接使用 Homebrew 安裝整個快到不行:

1
brew install fish

安裝完畢。鍵入 fish 就可以看見你的 bash 變成了 fish!你可以立馬做一些簡單的指令操作,然後大聲說「回不去了」。

至於 Mac 作業系統預設使用 bash,若每次打開新的終端機都要 key 一次 fish 豈不是挺累。如果你使用 fish 後發現體驗很優,想要作為你的預設終端機,請繼續看下去。

使用 fish 作為你的預設 shell

Mac 所有的 shell 都條列在 /etc/shells 檔裡面。你會發現裡面除了 bashzsh 之外,另有 ksh, csh, tcsh 等。以上都不是重點,你只要把你剛剛透過 brew 安裝的 fish 路徑放在最後一行:

1
2
3
4
5
6
7
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish # 新增你的 fish 在這裡

接著,使用 chsh 改變你的預設 shell:

1
chsh -s /usr/local/bin/fish

設定完畢。打開一個新的終端機,你會第一眼看見 fish

注意: fish shell 指令並非完全相容於當紅的 bash,執行 .sh 腳本使用 bash *.sh 仍是最安全的選擇。

定製你的 fish shell

fish 預設的設定檔案位於 ~/.config/fish/config.fish,在 fish 啟動時都會掃一遍。你可以在上面自定歡迎畫面,例如:

1
echo "Welcome to j fish"

每當你開啟新的 fish 就會自動顯示這段文字。另外,你也可以自己定義 function ,每次開啟 fish 即可使用。

嫌設定檔麻煩嗎? fish 還提供了一個網頁版設定頁面,美美的 UI 讓你開心做設定。你只需要 fish shell 下輸入:

1
2
3
$ fish_config
Web config started at 'file:///Users/JayChung/.cache/fish/web_config-8TAAZN.html'. Hit enter to stop.

你會發現瀏覽器自動開啟 http://localhost:8000,舒服的網頁介面出現在眼前。

fish 網頁版安裝頁面fish 網頁版安裝頁面

安裝 fish 套件管理系統:oh-my-fish

oh-my-fishomf 是為了進一步強化 fish shell 功能的套件管理器,就像使用 zsh 會安裝 oh-my-zsh 一樣的不可或缺。人總是永遠不滿足,好還要更好,想把玩這條魚一定要嘗試。

安裝 oh-my-fish 需要透過 curl 從官網拉下來,pipe 到 fish 運行安裝腳本,並安置在 ~/.config/omf 目錄底下:

1
curl -L https://get.oh-my.fish | fish

想知道壺裡賣什麼藥,可以直接造訪 https://get.oh-my.fish 欣賞腳本內容。

注意:安裝腳本所執行的內容依賴本機 [email protected]+,若版本過低請透過 brew update git 升級。若你的 git 並非透過 Homebrew 安裝,請先刪除原本的 git 資料夾後使用 brew install git 重新安裝最新版本。 git 的資料夾位於 which git

開始使用 oh-my-fish 訂製你的 fish

關於 omf 的指令當然是先讓 fish 來告訴我們。鍵入 omf空格,再按下 Tab鍵:

使用 fish 自動補齊顯示指令提示使用 fish 自動補齊顯示指令提示

omf 的指令與變更最終都會記錄在 ~/.config/omf,其結構如下:

1
2
3
4
5
.
├── bundle
├── channel
├── init.fish
└── theme

其中 theme 檔案裡記錄了 fish shell 所使用的主題名稱,我們就來簡單玩主題。

使用 omf 簡單玩主題

oh-my-fish主題列表列出可以拿來訂製你的 fish 玩具。有些主題涉及字型安裝,過程比較棘手,我們先從簡單的主題 cyan 開始,使用 install 指令:

1
2
3
4
$ omf install cyan
Installing theme cyan
✔ theme cyan successfully installed.

安裝完後你會發現你的 fish 女大十八變,嘴角不爭氣的上揚了。

使用 theme 可以查看你的主題列表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ omf theme
Installed:
cyan default
Available:
agnoster dangerous gitstatus mtahmed simple-ass-prompt
batman default gnuykeaj nai simplevi
beloglazov eclm godfather nelsonjchen sushi
bira edan hulk numist syl20bnr
bobthefish eden idan ocean taktoa
budspencer es integral pastfish technopagan
cbjohnson fishbone jacaetevha perryh toaster
chain fishface krisleech plain tomita
clearance fishy-drupal l pure trout
cmorrell fisk lambda red-snapper uggedal
coffeeandcode flash lolfish robbyrussell will
cor fox mars scorphish yimmy
cyan gianu mokou shellder zish

omf 不僅列出了已經安裝的主題,還貼心告訴你其他可用的玩具。你會發現,已經有一個主題預先安裝了,叫做 default,這個是 fish 預設的主題。切換主題非常簡單,在最後的參數打上名字就行:

1
omf theme default

關於更進階的主題玩法,讓你的 fish shell 大整形,等有空再來發下一篇。