WezTerm
1. WezTerm 是什么?
WezTerm 的定位是:一个跨平台、可高度配置、支持 GPU 渲染、标签页、分屏、SSH、多路复用的现代终端模拟器。
终端模拟器:WezTerm / Windows Terminal / Ubuntu Terminal
Shell:PowerShell / cmd / bash / zsh / fish
提示符:Starship
命令工具:git / python / node / docker你可以把它理解为:用来打开命令行窗口的软件。
它们的核心作用是:
显示命令行界面
接收键盘输入
渲染文字、颜色、图标
管理标签页、分屏、快捷键
启动不同 Shell2. WezTerm 与 PowerShell、bash 的关系
最容易混淆的是这里。
PowerShell / bash 是 Shell
它们负责解释你输入的命令。
例如你输入:
cd ~/code
ls
python main.py真正理解并执行这些命令的是 Shell。
WezTerm 是终端窗口
WezTerm 负责显示这个交互过程。
比如:
WezTerm
│── WSL Shell
│ └── bash / zsh / fish
└── PowerShell
└── CMD所以它们不是替代关系,而是组合关系。
3. 为什么要用 WezTerm?
不同的系统自带终端一般不一样,使用方式、快捷键也不同。并且默认的终端自带功能
windows -> PowerShell、CMD、WSL Shell
linux -> bash、zsh、fish而 WezTerm 打开,可以使快捷键、使用体验保持一致。相比 Windows Terminal、Ubuntu Terminal,WezTerm 的优势主要是:
- 跨平台一致性好
- 配置能力更强
- 分屏、标签页体验好
- 快捷键可高度自定义
- 支持 Lua 配置
- 支持 SSH 域、WSL 域
- 字体、颜色、透明、背景控制更细
如果你只是偶尔敲命令,Windows Terminal 已经够用。
但如果你要做下面这些事情:
- 多项目切换
- 一边跑服务,一边看日志
- 一边编辑文件,一边执行命令
- 经常连接远程服务器
- 想统一 Windows / Linux / macOS 终端体验
WezTerm 就很值得学。
4. 怎么安装 WezTerm?
可以在官方查阅:https://wezterm.org/installation.html
Windows 安装
可以用 winget:
winget install wez.wezterm也可以去官网下载安装包。
安装后,开始菜单里搜索 WezTerm 打开即可。
ubuntu 安装
sudo apt install wezterm5. WezTerm 配置文件在哪里?
Windows 上配置文件一般是:
C:\Users\你的用户名\.wezterm.lua也就是用户目录下面的:
.wezterm.lua如果没有,就自己创建一个。
在 PowerShell 中可以使用下面指令打开:
notepad $HOME\.wezterm.luaWezTerm 使用 Lua 作为配置语言。
6. 最小可用配置
你可以先用这个版本:
local wezterm = require("wezterm")
local config = wezterm.config_builder()
config.font = wezterm.font("JetBrainsMono Nerd Font")
config.font_size = 12.5
config.color_scheme = "Catppuccin Mocha"
config.window_background_opacity = 0.95
config.default_prog = { "wsl.exe", "-d", "Ubuntu-22.04" }
return config这个配置的含义是:
使用 JetBrainsMono Nerd Font 字体
字号 12.5
主题使用 Catppuccin Mocha
窗口透明度 0.95
默认打开 WSL Ubuntu-22.04如果你想默认打开 PowerShell,可以这样:
config.default_prog = { "powershell.exe" }7. 配置快捷键
WezTerm 很适合分屏。
下面是一套比较常用的快捷键:
local wezterm = require("wezterm")
local act = wezterm.action
local config = wezterm.config_builder()
config.font = wezterm.font("JetBrainsMono Nerd Font")
config.font_size = 12.5
config.color_scheme = "Catppuccin Mocha"
config.default_prog = { "wsl.exe", "-d", "Ubuntu-22.04" }
config.keys = {
{
key = "Enter",
mods = "ALT",
action = act.ToggleFullScreen,
},
{
key = "t",
mods = "CTRL|SHIFT",
action = act.SpawnTab("CurrentPaneDomain"),
},
{
key = "w",
mods = "CTRL|SHIFT",
action = act.CloseCurrentTab({ confirm = true }),
},
{
key = "\\",
mods = "CTRL|SHIFT",
action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }),
},
{
key = "-",
mods = "CTRL|SHIFT",
action = act.SplitVertical({ domain = "CurrentPaneDomain" }),
},
{
key = "h",
mods = "ALT",
action = act.ActivatePaneDirection("Left"),
},
{
key = "l",
mods = "ALT",
action = act.ActivatePaneDirection("Right"),
},
{
key = "k",
mods = "ALT",
action = act.ActivatePaneDirection("Up"),
},
{
key = "j",
mods = "ALT",
action = act.ActivatePaneDirection("Down"),
},
}
return config常用快捷键:
Ctrl + Shift + t 新建标签页
Ctrl + Shift + w 关闭标签页
Ctrl + Shift + \ 左右分屏
Ctrl + Shift + - 上下分屏
Alt + h/j/k/l 切换分屏
Alt + Enter 全屏8. WezTerm 学习、使用技巧
建议不要一上来学完整 Lua 配置。按照下面顺序学就好。
第一阶段:搞懂定位
先搞清楚:
WezTerm = 终端窗口
Shell = 命令解释器
Starship = 提示符
Nerd Font = 图标字体这一层搞清楚,比背配置更重要。
第二阶段:只改 5 个配置
先只学这几个:
config.font
config.font_size
config.color_scheme
config.default_prog
config.window_background_opacity对应能力:
改字体
改字号
改主题
改默认启动 Shell
改透明度够你正常使用了。
第三阶段:学标签页和分屏
重点掌握:
新建标签页
关闭标签页
左右分屏
上下分屏
分屏之间移动
调整分屏大小这才是 WezTerm 的核心生产力。
典型使用场景:
左边:vim / nvim / 当前项目目录
右上:运行后端服务
右下:查看日志 / 执行测试
另一个标签页:前端 pnpm dev
再一个标签页:数据库 / docker compose第四阶段:再学高级配置
高级配置包括:
状态栏
右侧状态
自动切换主题
按项目启动工作区
多路复用
SSH domain
鼠标行为
复制粘贴行为
按键表这些可以以后慢慢学,不建议一开始就全部研究。
14. 一个适合你的完整入门配置
你可以直接放到:
C:\Users\你的用户名\.wezterm.lua内容如下:
local wezterm = require("wezterm")
local act = wezterm.action
local config = wezterm.config_builder()
-- 字体与显示
config.font = wezterm.font("JetBrainsMono Nerd Font")
config.font_size = 12.5
config.color_scheme = "Catppuccin Mocha"
config.window_background_opacity = 0.95
-- 默认启动 WSL
config.default_prog = { "wsl.exe", "-d", "Ubuntu-22.04" }
-- 窗口
config.initial_cols = 120
config.initial_rows = 32
config.window_decorations = "RESIZE"
config.enable_tab_bar = true
config.hide_tab_bar_if_only_one_tab = false
-- 启动菜单
config.launch_menu = {
{
label = "WSL Ubuntu",
args = { "wsl.exe", "-d", "Ubuntu" },
},
{
label = "PowerShell",
args = { "pwsh.exe" },
},
{
label = "CMD",
args = { "cmd.exe" },
},
}
-- 快捷键
config.keys = {
-- 全屏
{
key = "Enter",
mods = "ALT",
action = act.ToggleFullScreen,
},
-- 新建/关闭标签页
{
key = "t",
mods = "CTRL|SHIFT",
action = act.SpawnTab("CurrentPaneDomain"),
},
{
key = "w",
mods = "CTRL|SHIFT",
action = act.CloseCurrentTab({ confirm = true }),
},
-- 分屏
{
key = "\\",
mods = "CTRL|SHIFT",
action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }),
},
{
key = "-",
mods = "CTRL|SHIFT",
action = act.SplitVertical({ domain = "CurrentPaneDomain" }),
},
-- pane 切换:类似 vim
{
key = "h",
mods = "ALT",
action = act.ActivatePaneDirection("Left"),
},
{
key = "l",
mods = "ALT",
action = act.ActivatePaneDirection("Right"),
},
{
key = "k",
mods = "ALT",
action = act.ActivatePaneDirection("Up"),
},
{
key = "j",
mods = "ALT",
action = act.ActivatePaneDirection("Down"),
},
-- 复制粘贴
{
key = "c",
mods = "CTRL|SHIFT",
action = act.CopyTo("Clipboard"),
},
{
key = "v",
mods = "CTRL|SHIFT",
action = act.PasteFrom("Clipboard"),
},
}
return config15. 最容易踩的坑
坑一:字体没有安装
如果配置了:
config.font = wezterm.font("JetBrainsMono Nerd Font")但系统没有这个字体,可能显示异常。
解决方式:
先安装 JetBrainsMono Nerd Font
然后重启 WezTerm坑二:Alt+h/j/k/l 没反应
常见原因:
快捷键被系统或输入法占用
配置文件没保存
WezTerm 没重新加载配置
当前焦点不在 WezTerm可以先用更不容易冲突的组合,比如:
mods = "CTRL|ALT"16. 最实用的使用方式
日常开发可以这样用:
Tab 1:项目后端
左侧:编辑/执行命令
右侧:运行 FastAPI / Flask
Tab 2:项目前端
左侧:pnpm dev
右侧:git status / git commit
Tab 3:Docker
docker compose up
docker compose logs -f
Tab 4:服务器
ssh root@serverWezTerm 的价值不只是好看,而是把开发环境组织得更清楚。
附录:字体配置
windows
首先进行下载字体:https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
然后解压出来,目录结构如下
JetBrainsMono-2.304
└── fonts
├── ttf
├── variable
└── webfonts进入到 ttf 目录下,全选,然后点击安装
ubuntu
mkdir -p ~/.local/share/fonts
cd /tmp
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
unzip JetBrainsMono.zip -d JetBrainsMono
cp JetBrainsMono/*.ttf ~/.local/share/fonts/
fc-cache -fv如果下载速度过慢,可以使用下面分享的文件。
通过网盘分享的文件:JetBrainsMono-2.304.zip 链接:https://pan.baidu.com/s/11cvfleCgroPPUMNZHjsKtg?pwd=6447 提取码:6447