fish + starship
官网
如果你之前一直用的是 zsh + oh-my-zsh,现在想切到 fish + starship,这篇可以直接当迁移清单来用。
简单说,这套组合里:
fish负责交互体验 、补全、历史提示、函数与 alias 管理starship负责统一 prompt 外观oh-my-zsh以前管的一部分主题、补全和提示,会拆给fish和starship
为什么从 zsh + oh-my-zsh 切到 fish + starship
我自己觉得,大家通常是因为这几件事才会想切:
- 不想再维护一长串
~/.zshrc里的插件和主题脚本 - 想要开箱即用的自动补全和历史建议
- 想把 prompt 外观和 shell 本身拆开,后面再换 shell 也不用重做提示符
- 想要更清晰的配置目录结构,例如
~/.config/fish/config.fish、~/.config/starship.toml
切换前先确认
切之前先过一眼自己到底在依赖什么,不然很容易换完才发现常用命令没了:
~/.zshrc里是否有自定义alias- 是否配置了
PATH - 是否有
nvm、pnpm、rbenv、pyenv、conda之类环境初始化脚本 - 是否依赖
oh-my-zsh插件,例如git、z、zsh-autosuggestions、zsh-syntax-highlighting - 是否使用了主题相关配置,例如
powerlevel10k
第一步:备份现有配置
先备份,再动手。至少把下面这些文件留一份:
mkdir -p ~/shell-backup
cp ~/.zshrc ~/shell-backup/.zshrc.bak 2>/dev/null
cp ~/.zprofile ~/shell-backup/.zprofile.bak 2>/dev/null
cp ~/.p10k.zsh ~/shell-backup/.p10k.zsh.bak 2>/dev/null
cp -R ~/.oh-my-zsh ~/shell-backup/.oh-my-zsh.bak 2>/dev/null
如果你还改过 iTerm2、Warp 或者 Terminal.app 的字体和配色,也顺手记一下,后面排查乱码会省很多事。
第二步:安装 Homebrew
如果本机还没装 Homebrew,就先装这个。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
装完以后,按 Homebrew 的提示把 brew shellenv 写进当前 shell 配置文件。
Homebrew 官方默认路径通常是:
- Apple Silicon:
/opt/homebrew - Intel Mac:
/usr/local
第三步:安装 fish 和 starship
最省事的方式就是直接走 Homebrew:
brew install fish
brew install starship
装完先看一眼版本和路径:
fish --version
starship --version
which fish
which starship
第四步:准备终端字体
starship 里的不少图标依赖 Nerd Font。没装也能用,就是大概率会乱码。
常见选择:
FiraCode Nerd FontJetBrainsMono Nerd FontHack Nerd Font