Terminal 环境配置指南
macOS 终端完全指南:从工具选型到各终端工具搭建 Ghostty / Kitty / iTerm2 / Tabby / WindTerm/ tmux 集成方案
一、目录
二、工具组合概览
| 层级 | 工具 | 说明 |
|---|---|---|
| 终端模拟器 | Ghostty / Kitty / iTerm2 / Tabby / WindTerm | 本文档覆盖多种主流终端 |
| 会话管理 | tmux | 会话持久化(关闭终端后重新打开可以恢复),SSH 断线不丢失,多终端共享会话 |
| Shell | Zsh 5.9 | macOS 内置,作为默认 shell |
| Zsh 框架 | Oh My Zsh | 管理主题和插件 |
| 主题 | 3den | Oh My Zsh 内置主题 |
| 模糊搜索 | fzf | 历史、文件、目录模糊查找 |
| 包管理器 | Homebrew | macOS 软件包管理 |
三、终端选型参考
1、对比总览
| ① Ghostty | ② Kitty | ③ iTerm2 | ④ Tabby | ⑤ WindTerm | |
|---|---|---|---|---|---|
| 定位 | 现代 GPU 终端 | 功能强大的 GPU 终端 | macOS 老牌终端 | 跨平台现代终端 | 专业 SSH/远程管理 |
| 平台 | macOS / Linux | macOS / Linux | macOS 专属 | macOS / Linux / Windows | macOS / Linux / Windows |
| 性能 | 极快 | 快 | 中等 | 较慢(Electron) | 快 |
| 配置方式 | 文本配置 | 文本配置 | GUI 偏好设置 | GUI + YAML | GUI 配置 |
| 扩展性 | 有限 | 高(Kittens) | 中(脚本/触发器) | 高(插件市场) | 有限 |
| SSH 功能 | 无 | 内置 SSH kitten | 无(需配合工具) | 内置 SSH/SFTP | 完整 SSH/SFTP/串口 |
| tmux 集成 | 配置启动 | ~/.zshrc 启动 | 原生 tmux -CC 模式 | ~/.zshrc 启动 | 内置,无需安装 tmux |
| 免费 | 是 | 是 | 是 | 是 | 是(含商用) |
| 开源 | 完全开源 | 完全开源 | 完全开源 | 完全开源 | 部分开源 |
2、各终端简评
① Ghostty
- 启动极快、原生 macOS 体验、配置简单、社区活跃;
- 扩展生态尚未成熟、不支持 Windows、无内置 SSH 管理;适合追求极致性能和简洁体验的 macOS / Linux 开发者。
② Kitty
- Kittens 插件框架强大、300+ 主题、内置分屏、SSH kitten 自动同步本地配置到远端;
- 配置语法略繁琐、macOS 上系统集成不如 Ghostty 原生;适合重度键盘用户、需要终端内显示图片等扩展功能的场景。
③ iTerm2
- macOS 生态最成熟、Shell Integration 功能强大(命令标记/跳转/历史)、原生 tmux -CC 集成、触发器/配置文件/密码管理器;
- 仅限 macOS、性能不如 GPU 终端、界面较厚重;适合不想折腾配置、需要开箱即用高级功能的 macOS 用户。
④ Tabby
- 跨平台含 Windows、插件生态丰富、内置 SSH/SFTP 连接管理、界面现代美观;
- Electron 架构,内存占用较高、启动慢;适合需要跨平台一致体验、或重度 SSH 连接管理的用户。
⑤ WindTerm
- SSH/SFTP/Telnet/串口全支持、超低内存占用、内置 tmux 集成、跨平台含 Windows;
- 部分闭源、无插件生态、主题少、偏运维场景;适合运维工程师,需要管理大量服务器连接。
四、Oh My Zsh 安装
bashsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
五、通用插件安装
1、插件列表
| 插件 | 来源 | 功能 |
|---|---|---|
git | OMZ 内置 | git 命令别名(gst / gco / gp 等) |
autojump | OMZ 内置(需单独安装) | j <关键词> 快速跳转常用目录 |
zsh-autosuggestions | 第三方,需克隆 | 根据历史记录,输入时显示灰色提示 |
zsh-syntax-highlighting | 第三方,需克隆 | 输入时实时高亮命令(绿色=有效,红色=无效) |
zsh-completions | 第三方,需克隆 | 扩展大量命令的 Tab 补全定义 |
2、安装 autojump
bashbrew install autojump
3、安装 zsh-autosuggestions
bashgit clone https://github.com/zsh-users/zsh-autosuggestions \ ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
4、安装 zsh-syntax-highlighting
bashgit clone https://github.com/zsh-users/zsh-syntax-highlighting \ ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
5、安装 zsh-completions
bashgit clone https://github.com/zsh-users/zsh-completions \ ~/.oh-my-zsh/custom/plugins/zsh-completions
6、安装 fzf
bashbrew install fzf
六、~/.zshrc 关键配置
zsh# 1. 插件声明(必须在 source oh-my-zsh.sh 之前) plugins=(git autojump zsh-autosuggestions zsh-syntax-highlighting zsh-completions) source $ZSH/oh-my-zsh.sh # 2. Tab 补全行为配置 zstyle ':completion:*' menu select # 补全菜单可用方向键选择 zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' 'r:|=*' 'l:|=* r:|=*' # 大小写不敏感 # 3. fzf shell 集成(文件末尾) source <(fzf --zsh)
七、快捷键速查
1、fzf
| 快捷键 | 功能 |
|---|---|
Ctrl + R | 模糊搜索历史命令,实时预览,Enter 确认 |
Ctrl + T | 模糊搜索当前目录下所有文件,插入路径到命令行 |
Alt + C | 模糊搜索子目录,直接 cd 进入 |
在 fzf 弹出的搜索框中,
Ctrl+J/Ctrl+K或方向键可上下移动选项。
2、zsh-autosuggestions
| 快捷键 | 功能 |
|---|---|
→(右方向键) | 接受完整的灰色历史建议 |
Ctrl + F | 同上,接受完整建议 |
Alt + → | 只接受建议的下一个单词 |
3、Tab 补全(zsh 原生 + zsh-completions)
| 操作 | 功能 |
|---|---|
Tab | 触发补全 / 显示候选菜单 |
Tab Tab | 展开完整候选列表 |
↑ ↓ ← → | 在补全菜单中移动选择 |
Enter | 确认选中项 |
Ctrl + C | 退出补全菜单 |
4、autojump
| 命令 | 功能 |
|---|---|
j <关键词> | 跳转到匹配的常用目录 |
j | 查看跳转权重数据库 |
jo <关键词> | 用 Finder 打开匹配目录 |
5、Oh My Zsh git 插件常用别名
| 别名 | 完整命令 |
|---|---|
gst | git status |
gco | git checkout |
gcb | git checkout -b |
gp | git push |
gl | git pull |
glog | git log --oneline --graph |
gaa | git add --all |
gcmsg | git commit -m |
八、tmux 配置
1、安装
bashbrew install tmux
2、⚠️ 使用 tmux 后,分屏请用 tmux 内部分屏
前提:如果你配置了终端自动启动 tmux(如在 Ghostty 中设置 command = tmux ... 或在 ~/.zshrc 中添加自动启动),此时终端自带的分屏功能会出现问题——每个新 pane 都会重新 attach 到同一个 tmux session,导致所有分屏内容完全镜像、互相同步,显示相同的内容。
正确做法:在 tmux 内部分屏,每个 pane 独立运行不同进程,互不干扰,关掉终端重开还能完整恢复。
如果没有配置 tmux 自动启动,终端自带的分屏功能可以正常使用。
3、快捷键
| 操作 | 快捷键 |
|---|---|
| 左右分屏 | Ctrl+B 松开,% |
| 上下分屏 | Ctrl+B 松开," |
| 切换 pane | Ctrl+B 松开,方向键 |
| 关闭 pane(退出 shell) | Ctrl+D 或输入 exit |
| 关闭 pane(不退出 shell) | Ctrl+B 松开,x,再按 y 确认 |
| 全屏/还原当前 pane | Ctrl+B 松开,z |
| 新建 window | Ctrl+B 松开,c |
| 切换 window | Ctrl+B 松开,0~9 |
4、自定义快捷键
tmux 的所有快捷键都可以在 ~/.tmux.conf 里修改,语法如下:
bash# 修改 prefix(默认 Ctrl+B,改为 Ctrl+A) unbind C-b set -g prefix C-a bind C-a send-prefix # 绑定新键:prefix + 某键 执行命令 bind C-b split-window -h -c "#{pane_current_path}" # prefix+Ctrl+B 左右分屏 bind - split-window -v -c "#{pane_current_path}" # prefix+- 上下分屏 # 绑定不需要 prefix 的键(-n 表示 no prefix) bind -n M-Left select-pane -L # Alt+← 切换 pane
5、配置文件 ~/.tmux.conf
bash# prefix:Ctrl+A unbind C-b set -g prefix C-a bind C-a send-prefix # 分屏:Ctrl+B 左右分,- 上下分 unbind '"' unbind % bind C-b split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}" # 切换 pane:Alt+方向键,不需要先按 prefix bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D # 鼠标支持(滚动、点击切换面板) set -g mouse on # 真彩色 set -g default-terminal "tmux-256color" set -ga terminal-overrides ",*:Tc" # 系统剪贴板同步 set -g set-clipboard on # 状态栏简化 set -g status-style "bg=default,fg=gray" set -g status-left "" set -g status-right "" # 每个客户端独立窗口大小,不然可能会相互影响 setw -g aggressive-resize on set -g window-size manual(新版本用set -g window-size latest) # 窗口从 1 开始编号 set -g base-index 1 # 减少 Esc 延迟(vim 友好) set -sg escape-time 10
6、常用命令
| 命令 | 功能 |
|---|---|
tmux new -s <名称> | 新建会话 |
tmux attach | 恢复最近的会话 |
tmux attach -t <名称> | 恢复指定会话 |
tmux ls | 列出所有会话 |
tmux source ~/.tmux.conf | 重载配置 |
7、多终端共享会话
tmux 允许多个终端窗口 attach 到同一个会话,实现:
- 协作调试:团队成员共享同一会话,实时看到对方的操作
- 多屏同步:在家用大屏显示器,外出用笔记本,两边看到完全相同的终端状态
- 一对多演示:主讲人操作,多个观众终端同步显示
用法:
bash# 终端 A:创建会话 tmux new -s shared # 终端 B、C、D...:加入同一会话(只读模式) tmux attach -t shared # 终端 B、C、D...:加入同一会话(可操作,多人协作) tmux attach -t shared
只读模式需要用
tmux attach -d -t shared强制 detach 其他客户端。
8、会话持久化
tmux 的核心优势:关闭终端,会话不丢失。
| 场景 | 普通终端 | tmux |
|---|---|---|
| 关闭终端窗口 | 所有进程终止 | 会话继续运行 |
| 网络断开 | SSH 连接断开,工作丢失 | 会话保持,重连后恢复 |
| 重启电脑 | 所有工作丢失 | 会话终止(但可用 tmux-resurrect 插件恢复) |
典型工作流:
bash# 上午:启动 tmux 开始工作 tmux new -s work # 中午:关闭电脑,不关闭 tmux(直接关终端窗口) # 下午:重新打开终端,attach 回原会话 tmux attach -t work # 所有窗口、目录、程序都还在
技术原理:tmux 会话运行在后台,与终端窗口分离。
attach只是连接现有会话,不是创建新会话。
9、自动启动 tmux
方式一:在 ~/.zshrc 末尾添加(适用于所有终端)
zsh[[ -z "$TMUX" ]] && tmux new-session -A -s main
[[ -z "$TMUX" ]]判断当前是否已经在 tmux 里,避免嵌套启动。
方式二:终端配置内设置(仅适用于支持 command 选项的终端)
10、验证是否生效
| 验证方法 | 命令/操作 | 预期结果 |
|---|---|---|
| 检查环境变量 | echo $TMUX | 有输出(如 /tmp/tmux-1001/default,12345,0)说明已在 tmux 中 |
| 检查会话列表 | tmux ls | 显示 main: 1 windows(或其他会话名) |
| 新建终端窗口 | 打开一个新终端 | 自动进入名为 main 的会话,无需手动运行 tmux |
| 查看底部状态栏 | 观察终端底部 | tmux 默认有状态栏,如果配置了简化版可能不明显 |
如果
echo $TMUX为空,说明自动启动未生效,检查配置是否正确添加且已重载。
九、Ghostty 配置
1、安装
bashbrew install ghostty
2、配置文件
配置文件路径(macOS):~/Library/Application Support/com.mitchellh.ghostty/config
3、核心配置
ini# 自动启动 tmux(Ghostty 不加载 shell PATH,需用完整路径) # Apple Silicon Mac:/opt/homebrew/bin/tmux # Intel Mac:/usr/local/bin/tmux command = /opt/homebrew/bin/tmux new-session -A -s main # 真彩色支持 term = xterm-256color
4、常用快捷键
| 快捷键 | 功能 |
|---|---|
Cmd+T | 新建标签页 |
Cmd+W | 关闭标签页 |
Cmd+Shift+Enter | 新建窗口 |
Cmd+[ / Cmd+] | 切换窗口 |
十、Kitty 配置参考
1、安装
从 GitHub Releases 下载 .dmg 压缩包,解压后直接运行,无需通过 Homebrew 安装。
配置文件路径:~/.config/kitty/kitty.conf
2、kitty.conf 核心配置
ini# 字体 font_family JetBrains Mono font_size 20.0 # 真彩色 term xterm-256color # 鼠标 mouse_hide_wait 3.0 copy_on_select yes # 窗口内边距 window_padding_width 8 # 性能 repaint_delay 10 sync_to_monitor yes # 滚动历史 scrollback_lines 10000 # 主题(通过 kitten themes 选择后自动写入) include current-theme.conf
3、Kittens(内置插件)
Kitty 的插件叫 Kittens,无需额外安装,通过 kitty +kitten <名称> 调用。
| Kitten | 命令 | 功能 |
|---|---|---|
themes | kitty +kitten themes | 交互式预览并切换 300+ 主题 |
diff | kitty +kitten diff file1 file2 | 语法高亮的终端内 diff |
icat | kitty +kitten icat image.png | 终端内直接显示图片 |
hints | Ctrl+Shift+E | 键盘点击屏幕上的 URL / 文件名 |
ssh | kitty +kitten ssh user@host | SSH 并自动同步本地 shell 配置 |
clipboard | kitty +kitten clipboard | 脚本化访问剪贴板(含 SSH 场景) |
unicode_input | Ctrl+Shift+U | 输入任意 Unicode 字符 |
4、主题设置
bash# 交互式选择(支持实时预览、搜索、深色/浅色筛选) kitty +kitten themes # 自动跟随系统深色/浅色模式 # 运行两次 themes kitten,分别保存为 dark 和 light 主题即可
主题本质是 .conf 文件,选中后自动写入 ~/.config/kitty/current-theme.conf。
社区主题库(移植自 iTerm2):
bashgit clone https://github.com/dexpota/kitty-themes ~/.config/kitty/kitty-themes # 在 kitty.conf 中 include 对应文件即可
5、Kitty 常用快捷键
5.1、标签页
| 快捷键 | 功能 |
|---|---|
Ctrl+Shift+T | 新建标签页 |
Ctrl+Shift+Q | 关闭标签页 |
Ctrl+Shift+→ | 切换到下一标签页 |
Ctrl+Shift+← | 切换到上一标签页 |
Ctrl+Shift+Alt+T | 重命名标签页 |
5.2、窗口分屏
| 快捷键 | 功能 |
|---|---|
Ctrl+Shift+Enter | 新建分屏窗口 |
Ctrl+Shift+W | 关闭当前分屏 |
Ctrl+Shift+L | 切换布局(横/竖/网格等) |
Ctrl+Shift+] | 切换到下一个分屏 |
Ctrl+Shift+[ | 切换到上一个分屏 |
5.3、滚动
| 快捷键 | 功能 |
|---|---|
Ctrl+Shift+↑ | 向上滚动一行 |
Ctrl+Shift+↓ | 向下滚动一行 |
Ctrl+Shift+Page Up | 向上翻页 |
Ctrl+Shift+Page Down | 向下翻页 |
Ctrl+Shift+H | 在 less 中浏览完整滚动历史 |
Ctrl+Shift+Z | 跳转到上一个命令提示符 |
5.4、字体 & 配置
| 快捷键 | 功能 |
|---|---|
Ctrl+Shift+= | 增大字体 |
Ctrl+Shift+- | 减小字体 |
Ctrl+Shift+Backspace | 重置字体大小 |
Ctrl+Shift+F2 | 打开 kitty.conf 配置文件 |
Ctrl+Shift+F5 | 重载配置(无需重启) |
6、自动启动 tmux
在 ~/.zshrc 末尾添加:
zsh[[ -z "$TMUX" ]] && tmux new-session -A -s main
十一、iTerm2 配置参考
官网:iterm2.com
1、安装
bashbrew install --cask iterm2
配置文件:Preferences → General → Preferences → Load preferences from a custom folder,可导出为 JSON 备份。
2、核心功能设置
外观:Preferences → Profiles → Colors 选主题,推荐内置的 Solarized Dark 或从 iterm2colorschemes.com 下载导入。
字体:Preferences → Profiles → Text 设置字体和大小。
Shell Integration(强烈推荐开启):
bashcurl -L https://iterm2.com/shell_integration/install_shell_integration.sh | bash
开启后获得:
- 每条命令左侧显示标记,可快速跳转
Cmd+方向键在命令间跳转- 自动记录命令历史和工作目录
- 拖拽上传文件到 SSH 会话
与 tmux 集成(原生模式):
iTerm2 支持 tmux -CC 模式,将 tmux 的 window/pane 渲染为真实的 iTerm2 标签页和分屏,体验比普通终端里跑 tmux 更原生:
bash# 直接用这个命令代替普通的 tmux 命令 tmux -CC new-session -A -s main
普通
tmux模式也完全支持,tmux -CC是 iTerm2 的增强选项。
在 ~/.zshrc 里自动启动 tmux:
zsh[[ -z "$TMUX" ]] && tmux new-session -A -s main
3、iTerm2 常用快捷键
3.1、标签页 & 窗口
| 快捷键 | 功能 |
|---|---|
Cmd+T | 新建标签页 |
Cmd+W | 关闭标签页 |
Cmd+数字 | 切换到第 N 个标签页 |
Cmd+N | 新建窗口 |
3.2、分屏
| 快捷键 | 功能 |
|---|---|
Cmd+D | 左右分屏 |
Cmd+Shift+D | 上下分屏 |
Cmd+] / Cmd+[ | 切换到下/上一个分屏 |
Cmd+W | 关闭当前分屏 |
3.3、Shell Integration
| 快捷键 | 功能 |
|---|---|
Cmd+↑ | 跳转到上一个命令 |
Cmd+↓ | 跳转到下一个命令 |
Cmd+Shift+A | 选中上一条命令的输出 |
3.4、其他
| 快捷键 | 功能 |
|---|---|
Cmd+; | 自动补全历史命令 |
Cmd+Shift+H | 粘贴历史记录 |
Cmd+F | 搜索(支持正则) |
Cmd+, | 打开偏好设置 |
十二、Tabby 配置参考
官网:tabby.sh(前身为 Terminus)
1、安装
bashbrew install --cask tabby
配置文件:~/.config/tabby/config.yaml,也可在 Tabby 内 Settings → Edit config file 直接编辑。
2、核心功能设置
主题:Settings → Appearance → Color scheme 选择,内置多套主题,也可安装插件扩展。
字体:Settings → Appearance → Font。
SSH 连接管理:Connections 面板,可保存多个 SSH 主机配置,支持密钥认证、跳板机、SFTP 文件传输。
插件安装:Settings → Plugins,在线搜索安装,常用插件:
| 插件 | 功能 |
|---|---|
tabby-ssh | 内置,SSH/SFTP 支持 |
tabby-serial | 串口连接 |
tabby-telnet | Telnet 支持 |
tabby-sync | 配置云同步(需 GitHub) |
3、config.yaml 核心配置示例
yamlterminal: fontSize: 14 fontFamily: JetBrains Mono scrollbackLines: 10000 colorScheme: name: Tomorrow Night ssh: recentConnections: - name: my-server host: 192.168.1.100 port: 22 user: ubuntu privateKey: ~/.ssh/id_rsa
4、Tabby 常用快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+Shift+T | 新建标签页 |
Ctrl+Shift+W | 关闭标签页 |
Ctrl+Tab | 切换标签页 |
Ctrl+Shift+数字 | 切换到第 N 个标签页 |
Ctrl+Shift+, | 打开设置 |
5、自动启动 tmux
在 ~/.zshrc 末尾添加:
zsh[[ -z "$TMUX" ]] && tmux new-session -A -s main
十三、WindTerm 配置参考
官网:github.com/kingToolbox/WindTerm
1、安装
从 Releases 页面 下载对应平台安装包,macOS 下载 .dmg。
2、主题设置
WindTerm 内置 3 个主题,主题语法与 VSCode 兼容可自定义:
- 菜单栏 → View → Theme 选择
- 或按
Alt+;打开命令面板,输入theme搜索
| 内置主题 | 风格 |
|---|---|
| Dige Black | 深色 |
| Dige Black And White | 深色高对比 |
| Dige White | 浅色 |
自定义主题:按 VSCode 主题语法编写 .json 配置文件,放入主题目录后重启生效。
标签页颜色:右键标签页 → Set Tab Color,支持预设色和自定义色,重启后保留。
3、WindTerm 常用快捷键
3.1、模式切换
WindTerm 有两种输入模式,这是其核心特性:
| 快捷键 | 功能 |
|---|---|
Alt+Enter | 切换 Remote Mode ↔ Local Mode |
i(Local Mode 中) | 返回 Remote Mode |
p(Local Mode 中) | 粘贴内容并切换回 Remote Mode |
Remote Mode(默认):所有按键直接发送到服务器,与普通终端一致 Local Mode:按键由本地解析,支持类 Vim 操作浏览输出内容,适合输出滚动过快时暂停阅读
3.2、通用
| 快捷键 | 功能 |
|---|---|
Alt+; | 打开命令面板(Command Palette) |
Ctrl+Shift+C | 复制 |
Ctrl+Shift+V | 粘贴 |
Shift+Enter | 同步输入模式开关 |
3.3、Tmux 集成模式(内置,无需安装 tmux)
| 快捷键 | 功能 |
|---|---|
Alt+Z | 缩放/还原当前面板(tmux zoom) |
Alt+↑/↓/←/→ | 切换相邻面板 |
Alt+Shift+↑/↓/←/→ | 调整面板大小 |
Alt+N | 新建窗口 |
Alt+W | 关闭当前面板 |
附录
目录结构
~/.oh-my-zsh/
└── custom/
└── plugins/
├── zsh-autosuggestions/
├── zsh-syntax-highlighting/
└── zsh-completions/
~/.zshrc # 主配置文件
~/.tmux.conf # tmux 配置文件
~/Library/Application Support/com.mitchellh.ghostty/config # Ghostty 配置(macOS)
~/.config/kitty/kitty.conf # Kitty 配置