终端管理器
Windows 自带的 cmd 和 PowerShell 窗口功能太弱,没有标签页、不能分屏、配色也丑。换一个好用的终端管理器,开发体验能提升一大截。这里横向对比几款主流终端,帮你找到最适合自己的那一款。
Windows Terminal
微软官方出品,Windows 10/11 默认终端。从 Windows 11 开始已经替代了传统的 cmd 和 PowerShell 窗口。
核心特点
- 多标签页:支持在一个窗口里开多个标签,cmd、PowerShell、WSL、Azure Cloud Shell 都能混着用
- 分屏操作:水平/垂直分屏,快捷键
Alt+Shift+D或Alt+Shift+-/Alt+Shift+= - GPU 加速渲染:基于 DirectX,文字渲染流畅,透明背景不卡顿
- Unicode/Emoji 支持:中文、日文、Emoji 都能正常显示,不会乱码
- 配置文件系统:每个 Shell 可以单独配置配色、字体、背景图、启动目录
- 自定义主题:内置 10 多套配色方案,也支持自己写 JSON 配色
配置方法
配置文件是 JSON 格式,路径:%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
{
"profiles": {
"defaults": {
"font": {
"face": "CaskaydiaCove Nerd Font",
"size": 12
},
"opacity": 85,
"useAcrylic": true,
"colorScheme": "One Half Dark"
},
"list": [
{
"name": "PowerShell",
"source": "Windows.Terminal.PowershellCore",
"startingDirectory": "D:\\Projects"
},
{
"name": "Ubuntu WSL",
"source": "Windows.Terminal.Wsl",
"colorScheme": "Tango Dark"
}
]
}
}适合人群
大多数 Windows 用户的首选。功能够用、更新频繁、和系统集成紧密。如果你不想折腾,直接用它就行。
优势
- 微软官方维护,稳定性好,bug 修复快
- 与 WSL 集成最好,开箱即用
- 配置 UI 可视化,不用手写 JSON 也能改设置
- 社区活跃,插件生态在发展
劣势
- 配置文件格式不如 TOML/YAML 直观
- 自定义程度比 WezTerm、Hyper 低
- Windows 10 早期版本需要手动从 Microsoft Store 安装
ConEmu
老牌 Windows 终端,功能非常丰富,2006 年就有了,比 Windows Terminal 早十几年。
核心特点
- 标签页管理:支持标签页分组、重命名、锁定
- 分屏:水平/垂直/网格分屏,比 Windows Terminal 的分屏灵活得多
- Quake 模式:按快捷键从屏幕顶部滑下来,用完再滑回去,像游戏《Quake》的控制台
- 自定义宏:可以绑定快捷键执行一系列操作
- 集成 Far Manager:对用 Far 的人来说是绝配
- 丰富的配色方案:内置几十套配色,也支持自己配
配置方法
ConEmu 用的是自己的 XML 配置文件,也可以通过 GUI 设置。设置项非常多,初次打开可能会被吓到。
<!-- 常用设置示例 -->
<value name="Font.FaceName" type="string" data="Consolas"/>
<value name="FontSize" type="dword" data="0x0000000c"/>
<value name="ColorTable00" type="dword" data="0x001e1e1e"/>适合人群
需要高级分屏、Quake 模式、宏命令的重度终端用户。对配置有强迫症的人会喜欢它的精细控制。
优势
- 功能极其丰富,几乎没有它做不到的事
- Quake 模式是杀手级功能,用过就回不去了
- 可以嵌入到其他窗口里(比如 VS Code 的终端)
- 对老版本 Windows 支持好
劣势
- 界面比较老旧,不像现代应用
- 配置项太多,学习成本高
- 开发节奏变慢,维护者精力有限
- 偶尔有渲染问题,尤其是中文
Cmder
基于 ConEmu 的便携版终端,集成了 msysGit(现在是 Git for Windows),开箱即用。
核心特点
- 便携免安装:解压即用,U 盘随身带着走
- 内置 Git Bash:自带 Git for Windows 的 bash 环境
- 预配置好:ConEmu 那些复杂的配置已经帮你调好了,开箱就能用
- 自定义提示符:自带的
Cmder.lua脚本让提示符显示 git 分支、状态等信息 - 集成 SSH agent:ssh 密钥管理方便
配置方法
Cmder 的配置分两层:ConEmu 的配置(和原版一样)和 Cmder 自己的 Lua 脚本。
-- Cmder\config\cmder_prompt_config.lua
prompt_lambSymbol = "λ"
prompt_envVar = "{env:ENV_VAR}"环境变量配置:CMDER_ROOT 指向 Cmder 安装目录,PATH 加上 %CMDER_ROOT%\bin。
适合人群
想要一个便携、开箱即用的终端,不想折腾 ConEmu 配置的人。适合随身带 U 盘在不同电脑上用。
优势
- 免安装,解压就能用
- 预配置好,不用花时间调教
- Git 集成很好,提示符直接显示分支
- 社区维护的 clink 增强了命令行编辑
劣势
- 底层还是 ConEmu,继承了它的渲染问题
- 版本更新慢,Git 版本可能滞后
- 体积比 ConEmu 大(因为带了 Git for Windows)
- 和 Windows Terminal 比,缺少现代化的渲染引擎
Alacritty
用 Rust 写的终端模拟器,主打一个字:快。GPU 加速渲染,启动速度和渲染速度都很快。
核心特点
- GPU 加速:用 OpenGL 渲染,文字刷新飞快,不会有撕裂感
- 极简设计:没有标签页、没有分屏、没有菜单栏,就是一个纯粹的终端窗口
- 跨平台:Windows、macOS、Linux 都支持
- YAML 配置:配置文件简洁明了
- 低延迟:输入延迟极低,打字手感好
配置方法
配置文件路径:%APPDATA%\alacritty\alacritty.yml(Windows)或 ~/.config/alacritty/alacritty.yml(Linux/macOS)
# alacritty.yml
window:
opacity: 0.9
padding:
x: 8
y: 8
font:
normal:
family: "CaskaydiaCove Nerd Font"
style: Regular
size: 12.0
colors:
primary:
background: "#1e1e1e"
foreground: "#d4d4d4"
normal:
black: "#1e1e1e"
red: "#f44747"
green: "#6a9955"
yellow: "#d7ba7d"
blue: "#569cd6"
magenta: "#c586c0"
cyan: "#4ec9b0"
white: "#d4d4d4"适合人群
追求极致性能、喜欢极简风格的用户。通常搭配 tmux 或 zellij 这类终端复用器使用,弥补它没有标签页和分屏的缺点。
优势
- 启动快、渲染快、响应快
- 资源占用低,内存占用只有几十 MB
- 配置文件简洁,一目了然
- 社区活跃,更新及时
劣势
- 没有标签页和分屏,必须搭配 tmux/zellij
- 不支持图片显示(sixel/kitty 协议)
- 配置改了要重启才生效(部分配置支持热重载)
- Windows 上的体验不如 Linux/macOS
WezTerm
用 Rust 写的跨平台终端,配置用 Lua 脚本,可玩性很高。
核心特点
- Lua 配置:用 Lua 脚本配置,支持条件判断、循环、函数,比 JSON/YAML 灵活
- 内置多路复用:标签页、分屏、工作区都是内置功能,不需要 tmux
- 图片显示:支持 iTerm2 和 Kitty 的图片协议,终端里能看图
- 字体渲染好:支持连字(ligatures)、彩色字体(Nerd Font)
- 跨平台:Windows、macOS、Linux 都支持,配置文件通用
配置方法
配置文件路径:~/.wezterm.lua
-- ~/.wezterm.lua
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.font = wezterm.font('CaskaydiaCove Nerd Font')
config.font_size = 12.0
config.color_scheme = 'One Dark (Gogh)'
config.window_background_opacity = 0.9
config.window_padding = { left = 8, right = 8, top = 8, bottom = 8 }
config.enable_tab_bar = true
config.use_fancy_tab_bar = false
config.tab_bar_at_bottom = true
config.leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 }
config.keys = {
{ key = '-', mods = 'LEADER', action = wezterm.action.SplitVertical },
{ key = '\\', mods = 'LEADER', action = wezterm.action.SplitHorizontal },
{ key = 'z', mods = 'LEADER', action = wezterm.action.TogglePaneZoomState },
}
return config适合人群
喜欢用代码配置一切的用户。想要一个终端搞定所有事(标签页、分屏、图片显示),不想额外装 tmux 的人。
优势
- Lua 配置极其灵活,可以写复杂的逻辑
- 内置多路复用,不需要 tmux
- 图片显示支持好,终端里看图方便
- 配置文件跨平台通用,换电脑直接拷贝
- 更新频繁,功能一直在加
劣势
- 学习曲线比 Windows Terminal 陡
- 配置文件写错了会报错,需要一定的 Lua 基础
- 在 Windows 上偶尔有渲染 bug
- 社区比 Alacritty 小
Hyper
用 Electron 构建的终端,前端开发者会很熟悉,可以像写网页一样自定义终端。
核心特点
- Electron 架构:用 HTML/CSS/JS 渲染界面,前端开发者可以轻松自定义
- 插件系统:npm 包作为插件,社区插件丰富
- 主题系统:CSS 主题,可以完全重新设计终端外观
- 跨平台:Windows、macOS、Linux 都支持
- 配置简单:
~/.hyper.js一个文件搞定
配置方法
配置文件路径:%USERPROFILE%\.hyper.js(Windows)或 ~/.hyper.js(Linux/macOS)
// ~/.hyper.js
module.exports = {
config: {
fontSize: 14,
fontFamily: 'CaskaydiaCove Nerd Font, Menlo, monospace',
cursorColor: 'rgba(255, 255, 255, 0.8)',
foregroundColor: '#d4d4d4',
backgroundColor: '#1e1e1e',
padding: '12px',
termCSS: '',
showHamburgerMenu: '',
showWindowControls: '',
},
plugins: [
'hyper-dracula',
'hyper-statusline',
'hyper-tabs-enhanced',
],
};适合人群
前端开发者,或者喜欢用 JS/TS 配置一切的人。想要把终端做成一个可高度定制的工具。
优势
- 插件生态丰富,npm 上有大量终端插件
- 主题系统强大,CSS 能做到的事它都能做
- 对前端开发者友好,配置和开发门槛低
- 社区活跃,教程多
劣势
- Electron 的通病:内存占用高,启动慢
- 渲染性能不如原生终端,大量输出时会卡
- 依赖 Node.js 运行时,体积大
- 开发团队精力分散,更新频率不稳定
横向对比
| 特性 | Windows Terminal | ConEmu | Cmder | Alacritty | WezTerm | Hyper |
|---|---|---|---|---|---|---|
| 开发语言 | C++ | C++ | C++/Lua | Rust | Rust | TypeScript |
| GPU 加速 | 是 | 否 | 否 | 是 | 是 | 否 |
| 标签页 | 是 | 是 | 是 | 否 | 是 | 是 |
| 分屏 | 是 | 是 | 是 | 否 | 是 | 是 |
| 配置格式 | JSON | XML/GUI | Lua | YAML | Lua | JavaScript |
| 图片支持 | 是 | 否 | 否 | 否 | 是 | 是 |
| 内存占用 | 中等 | 低 | 中等 | 极低 | 低 | 高 |
| 启动速度 | 快 | 快 | 快 | 极快 | 快 | 慢 |
| 便携性 | 否 | 是 | 是 | 是 | 是 | 是 |
| 学习成本 | 低 | 高 | 低 | 中等 | 中等 | 中等 |
怎么选
不想折腾:Windows Terminal。官方出品,功能够用,更新稳定。
需要 Quake 模式:ConEmu。快捷键呼出/隐藏的体验是独一份的。
要便携:Cmder。U 盘带着走,解压就能用。
追求性能:Alacritty。配合 tmux,启动快、渲染快、资源占用低。
喜欢写代码配置:WezTerm。Lua 配置灵活,内置多路复用,一个终端搞定所有事。
前端开发者:Hyper。npm 插件生态,CSS 主题,用前端技术栈玩转终端。
推荐视频
下面几个视频对终端的使用和配置讲得比较详细,推荐看看。
补充资源
Nerd Font 字体
上面这些终端配置里都用了 Nerd Font,这是一类在普通字体基础上加了大量图标的编程字体。很多终端的主题和提示符美化都依赖它。
Oh My Posh
跨平台的终端提示符美化工具,支持 Bash、Zsh、PowerShell、Fish 等各种 Shell。可以显示 git 状态、执行时间、错误码等信息。
Starship
Rust 写的跨平台提示符工具,比 Oh My Posh 更轻量,配置更简洁。