WezTerm
> WezTerm — 一个用 Rust 写的 GPU 加速终端,让你在 Windows/macOS/Linux 上享受一致的极速体验,还自带多标签和 Tmux 分屏。
兄弟们,今天不聊框架,不聊算法,聊个每天都要摸的玩意儿——终端模拟器。我知道你想说“我 iTerm2 用得好好的,你让我换?” 或者 “Windows 自带 Terminal 够了”。但如果你跟我一样,在 Mac 和 Windows 之间反复横跳,或者单纯受够了终端卡顿、字体渲染发虚、配置要写两套,那 WezTerm 绝对值得你花十分钟折腾一下。
先别急着关页面,这玩意儿不是那种“看起来很酷但用不上”的工具。它解决的核心痛点就三个:**跨平台配置统一**、**GPU 加速不卡顿**、**内置分屏和 Tmux 功能**。我用了两周后,直接把 iTerm2 和 Windows Terminal 都卸了。
### 它到底干了啥?
简单说,WezTerm 是一个终端模拟器,但它底层用 OpenGL/Vulkan 做 GPU 渲染。这意味着什么?当你用 `vim` 滚动长日志,或者用 `yarn start` 刷屏几百行时,画面不会一卡一卡的,而是像德芙一样丝滑。更关键的是,它的配置文件是 **Lua 脚本**,不是 JSON 也不是 YAML。你写一份 `wezterm.lua`,放在任何一台电脑上,行为完全一致。字体、快捷键、主题、分屏布局,全部同步。
而且它内置了 **多标签(Tab)** 和 **分屏(Pane)**,不需要额外装 Tmux 就能实现类似操作。当然,你要是 Tmux 重度用户,它也能完美兼容,甚至支持把 Tmux 的快捷键映射到 WezTerm 层。
### 下载与安装
别去 GitHub 翻 Release 了,直接走官网,下载速度稳:
[WezTerm 官网下载](https://wezfurlong.org/wezterm/installation.html)
- **macOS**:下载 `.dmg` 文件,拖进 Applications 就行。或者用 Homebrew:`brew install --cask wezterm`
- **Windows**:下载 `.msi` 安装包,双击下一步。**注意**:装完后建议用 Windows Terminal 或 PowerShell 跑一下 `wezterm` 命令,确认 PATH 生效。
- **Linux (Ubuntu/Debian)**:官方推荐用 `.deb` 包,或者用 `apt` 添加仓库:
```bash
curl -fsSL https://apt.fury.io/wezterm/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/wezterm-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/wezterm-keyring.gpg] https://apt.fury.io/wezterm/ * *" | sudo tee /etc/apt/sources.list.d/wezterm.list
sudo apt update && sudo apt install wezterm
```
装完第一次打开,你会发现界面有点朴素,甚至有点丑。别慌,默认字体是 `JetBrains Mono`,但配置要自己写。
### 基础使用:从零开始写配置
WezTerm 的配置入口是 `~/.wezterm.lua`(Linux/macOS)或 `%USERPROFILE%\.wezterm.lua`(Windows)。没有这个文件就自己建一个。我们先写个最简单的:
```lua
local wezterm = require 'wezterm'
return {
-- 字体和大小
font = wezterm.font('JetBrains Mono'),
font_size = 12.0,
-- 主题配色(内置超多主题,这里用经典 dark)
color_scheme = 'Dracula',
-- 开启 GPU 加速
enable_wayland = false,
front_end = "OpenGL",
-- 窗口透明度(macOS 上效果明显)
window_background_opacity = 0.9,
text_background_opacity = 0.9,
-- 默认启动 shell
default_prog = { "zsh" }, -- Windows 上改成 {"pwsh", "-NoLogo"}
}
```
保存后,在 WezTerm 里执行 `wezterm reload` 或直接退出重开。你会发现界面瞬间顺眼了。如果没反应,检查一下 Lua 语法,或者看终端里有没有报错。
**常用快捷键**(默认配置,可在 Lua 里改):
| 功能 | 快捷键 |
|------|--------|
| 新建标签 | `Ctrl+Shift+T` |
| 关闭标签 | `Ctrl+Shift+W` |
| 垂直分屏 | `Ctrl+Shift+Alt+Enter` |
| 水平分屏 | `Ctrl+Shift+Enter` |
| 切换分屏 | `Ctrl+Shift+方向键` |
| 调整分屏大小 | `Ctrl+Shift+Alt+方向键` |
| 搜索历史输出 | `Ctrl+Shift+F` |
| 复制当前路径 | `Ctrl+Shift+P` |
### 进阶技巧:让它变成你的主力
光会开分屏还不够,下面这几个技巧能让你效率翻倍。
**1. 自定义快捷键 + 复制模式**
我习惯把 `Ctrl+Shift+C/V` 映射成复制粘贴(和系统一致),在配置里加:
```lua
keys = {
{ key = "C", mods = "SHIFT|CTRL", action = wezterm.action.CopyTo("Clipboard") },
{ key = "V", mods = "SHIFT|CTRL", action = wezterm.action.PasteFrom("Clipboard") },
}
```
**2. 会话保存与恢复**
WezTerm 支持 `wezterm serialize` 导出当前所有 Tab 和分屏布局。我用一个别名:
```bash
alias wt-save='wezterm serialize > ~/.wezterm-session.json'
alias wt-load='wezterm restore ~/.wezterm-session.json'
```
重启电脑后,一条 `wt-load` 直接恢复工作现场,不用一个个手动开。
**3. 让背景图跟随系统深浅色**
在 macOS 上,我用了一个小技巧:读取系统外观,切换背景色:
```lua
local scheme = wezterm.gui.get_appearance():find "Dark" and "OneDark" or "Github Light"
return { color_scheme = scheme }
```
**4. 强制走 GPU 渲染**
如果你发现滚动还是卡,检查一下 `front_end`。默认是 `"OpenGL"`,但某些老显卡上可能有问题。改成 `"WebGpu"` 试试:
```lua
front_end = "WebGpu",
```
如果还是卡,大概率是你开了太多无意义的背景动画,关掉 `animation_fps` 就行。
### 总结一下
WezTerm 不是那种“必装”的工具,但如果你追求极致流畅、跨平台配置统一,或者想在 Windows 上体验 Linux 终端的感觉,它绝对值得一试。配置一次,终身受益。最后提醒一句:**配置别抄我的,要抄就抄自己需要的**。Lua 语法很灵活,你可以慢慢折腾出最适合自己的方案。
如果你也折腾好了,欢迎在评论区分享你的配置截图。咱们下期见。