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 语法很灵活,你可以慢慢折腾出最适合自己的方案。 如果你也折腾好了,欢迎在评论区分享你的配置截图。咱们下期见。