Slant 2022 年票選第一推薦的 Unix Shell 是 Fish Shell。 如果你剛好 Zsh 也用膩了,不如一起來嘗試看看 Fish Shell。
開頭
本篇文章會安裝以下:
- Fish Shell
- Oh My Fish
- Fisher
- Tide
- Z
- Sponge
- autopair.fish
- fzf.fish
- asdf 自動完成
安裝完,你會得到一個簡單好上手的指令介面。
環境配置
我的使用環境為 Windows 10 的 Windows Terminal + pwsh 連進 Ubuntu 22.04 LTS 使用。
安裝 必要套件
shell 輸入
shell
sudo apt install wget git curl vim -y
安裝 Patched 字型
我們必須先安裝 Patched 過的字型,之後才能正確地顯示字型與圖示。
下載並安裝以下四個字型:
或是 shell 輸入
shell
wget https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Regular.ttf &&wget https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Bold.ttf &&wget https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Italic.ttf &&wget https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Bold%20Italic.ttf
- Windows
下載完成後在檔案點擊右鍵並選擇 安裝 或 為所有使用者安裝。
- Ubuntu
點擊兩下字型檔案,點擊 Install 。
更改字體
- Windows
到 Windows Terminal 的設定 > Ubuntu 設定檔 > 外觀, 更改字體為 MesloLGS NF。
- Ubuntu
使用內建的 Terminal,字型安裝完畢之後,就可以直接正常顯示不需用修改任何參數。
安裝 Fish shell
新增來源庫 > 更新 > 安裝 Fish shell
shell 輸入
shell
sudo apt-add-repository ppa:fish-shell/release-3sudo apt updatesudo apt install fish
設定預設 Shell
shell 輸入
shell
chsh -s $(which fish)
安裝 Oh My Fish
Oh My Fish 是用來擴充 Fish Shell 的
shell 輸入
shell
curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fish
安裝 Fisher
Fisher 是插件管理員
shell 輸入
shell
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
查看已安裝插件
shell 輸入
shell
fisher list
結果
shell
❯ fisher listjorgebucaran/fisherIlanCosman/tide@v5jethrokuan/zjorgebucaran/autopair.fishandreiborisov/spongePatrickF1/fzf.fish
安裝 Tide 主題
還記得 Zsh 的 PowerLevel10k 嗎? Tide 基本上就很像 PowerLevel10k。
安裝,shell 輸入
shell
fisher install IlanCosman/tide@v5
設定 Tide 主題
shell 輸入
shell
tide configure
安裝插件 Z
類似於 autojump 的插件,比 cd
更快速地直接跳到想去的資料夾。
shell 輸入
shell
fisher install jethrokuan/z
安裝插件 Sponge
讓指令歷史紀錄更乾淨,不會去紀錄失敗或是打錯的指令到歷史清單中。
shell 輸入
shell
fisher install andreiborisov/sponge
清除指令歷史
shell 輸入
shell
history clear
安裝插件 autopair
自動幫你補上 ()
, []
, {}
, ""
, 還有 ''
shell 輸入
shell
fisher install jorgebucaran/autopair.fish
安裝插件 fzf.fish
這插件讓你的 Fish 互動性更強大。
找檔案 Ctrl + Alt + F
找指令歷史紀錄 Ctrl + R
找 PID Ctrl + Alt + P
還有很多功能,請參考 fzf.fish 來源庫。
安裝前置套件 fzf
shell 輸入
shell
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf~/.fzf/install
安裝前置套件 fd
shell 輸入
shell
sudo apt install fd-find
因為已經有其他叫 fd 的套件,為了避免衝突,所以執行檔是叫 fdfind。我們這邊建立個連結在 /usr/local/bin
叫做 fd
讓我們可以使用 fd
這個指令。
shell 輸入
shell
sudo ln -s $(which fdfind) /usr/local/bin/fd
安裝前置套件 bat
shell 輸入
shell
sudo apt install bat
因為已經有其他叫 bat 的套件,為了避免衝突,所以執行檔是叫 batcat。我們這邊建立個連結在 /usr/local/bin
叫做 bat
讓我們可以使用 bat
這個指令。
shell 輸入
shell
sudo ln -s $(which batcat) /usr/local/bin/bat
安裝 fzf.fish
shell 輸入
shell
fisher install PatrickF1/fzf.fish
設定 asdf 自動完成
若已經有安裝使用 asdf 軟體版本管理器,設定自動完成如下
shell 輸入
shell
vi ~/.config/fish/config.fish
在 ~/.config/fish/config.fish
文件最後添加
~/.config/fish/config.fishshell
source ~/.asdf/asdf.fish
最後,shell 輸入以下指令,連結自動完成的功能
shell
mkdir -p ~/.config/fish/completions; and ln -s ~/.asdf/completions/asdf.fish ~/.config/fish/completions
最後
安裝過程我個人覺得應該比 zsh 稍微簡單一些。
不知道各位同學嘗試之後,覺得跟 zsh 比較,哪個用起來比較舒服呢? 留言讓我知道 😀