powershell安装
scoop bucket add extras
scoop install extras/wezterm
scoop install pwsh
scoop install yazi这里的pwsh是powershell 7,现在更多都是用pwsh了,后面主题出现的inner liner错误,基本上都是没用pwsh的原因。
WezTerm是独立的应用,你可以直接搜索打开,也可以在pwsh直接输入WezTerm打开,都可以
打开你会发现默认是C盘system32的cmd.exe,这显然不是很好,我们可以配置一下,打开pwsh:
notepad $env:USERPROFILE\.wezterm.lua没有就新建一个,然后给出最小配置:
local wezterm = require 'wezterm'
return {
config.default_prog = { 'pwsh.exe', '-NoLogo' }
default_cwd = 'D:/OS',
}默认打开powershell,然后给出默认路径(嘿,这图还是powershell的,就是因为我后面主题错了,所以前面才换成pwsh):

最简单就是:
Alt + v 左右分屏
Alt + s 上下分屏
Alt + h 切左边 pane
Alt + l 切右边 pane
Alt + j 切下面 pane
Alt + k 切上面 pane这样就可以愉快的开始了。
美化分为三层:
1. WezTerm 自带 color_scheme
2. 字体 + Nerd Font 图标
3. Shell prompt 美化,例如 Starship / Oh My Posh直接powershell安装:
scoop bucket add extras
scoop bucket add nerd-fonts
scoop install JetBrainsMono-NF
scoop install oh-my-posh
scoop install eza bat fd ripgrep fzf zoxide然后编辑:
notepad $env:USERPROFILE\.wezterm.lua原来已经有默认配置了,注意对比,替换即可:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.default_prog = { 'pwsh.exe', '-NoLogo' }
config.default_cwd = 'D:/OS'
-- 字体
config.font = wezterm.font_with_fallback {
'JetBrainsMono Nerd Font',
'CaskaydiaCove Nerd Font',
'Consolas',
}
config.font_size = 12.5
config.line_height = 1.1
-- 主题
config.color_scheme = 'Tokyo Night Storm'
-- 窗口
config.window_background_opacity = 0.94
config.window_decorations = 'RESIZE'
config.window_padding = {
left = 14,
right = 14,
top = 10,
bottom = 8,
}
-- Tab 栏
config.use_fancy_tab_bar = false
config.hide_tab_bar_if_only_one_tab = false
config.tab_bar_at_bottom = false
-- 光标
config.default_cursor_style = 'BlinkingBlock'
config.cursor_blink_rate = 650
return config这只是个开胃菜,这里其实配置的更多是整个终端的配置,具体细节美化还是要看主题
想自己配置可以去这里进行查看,不过现在都用gpt了,直接问都能改,官方文档说明,它内置了大量来自 iTerm2-Color-Schemes、base16、Gogh、terminal.sexy 等来源的主题。这个页面会按字母列出所有内置主题,目前页面显示有 1001 个 color schemes。
但是这些主题其实都很弱鸡,我还是推荐用Starship或者Oh My Posh
pwsh配置:
notepad $PROFILE没有就直接创建,然后加入:
oh-my-posh init powershell --config "$env:USERPROFILE\.config\ohmyposh\dev.omp.json" | Invoke-Expression注意:这里我们指定了一个自己的主题文件,这会在你的用户的.config\ohmyposh\dev.omp.json ,接下来powershell创建并且编辑它:
mkdir $env:USERPROFILE\.config\ohmyposh -Force
notepad $env:USERPROFILE\.config\ohmyposh\dev.omp.json创建之后不用写东西,我们把别的主题copy过来:
Copy-Item "$(scoop prefix oh-my-posh)\themes\tokyo.omp.json" "$env:USERPROFILE\.config\ohmyposh\dev.omp.json" -Force保存,重启之后,在pwsh就可以看到美化的主题了:

这种copy有一种好处,就是所有的修改都不会污染原来的主题,这就非常完美了,更多的主题可以看这里
在配置文件里:
notepad $env:USERPROFILE\.wezterm.lua写:
config.window_background_image = '路径/terminal-bg.png'
config.window_background_image_hsb = {
brightness = 0.25,
hue = 1.0,
saturation = 0.8,
}注意 Windows 路径建议用 /,不要用 \ 。
它同时可以配置背景图、背景图透明度、背景图拉伸方式、背景图位置、背景图和主题背景色混合,ai一下即可。
重点是:默认启动 pwsh.exe,启动目录指向项目目录,字体使用 Nerd Font,主题交给 WezTerm,prompt 交给 Oh My Posh。先配置:
notepad $env:USERPROFILE\.wezterm.lua这里有两种方案,一种是看代码的,左边看代码,右上codex,右下shell,这种就是属于自己要review代码,或者看开源repo怎么做的时候,就会这么干。
local wezterm = require 'wezterm'
local act = wezterm.action
local config = wezterm.config_builder()
----------------------------------------------------------------------
-- Basic
----------------------------------------------------------------------
config.default_prog = { 'pwsh.exe', '-NoLogo' }
config.default_cwd = 'D:/OS'
----------------------------------------------------------------------
-- Appearance
----------------------------------------------------------------------
config.font = wezterm.font_with_fallback {
'JetBrainsMono Nerd Font',
'CaskaydiaCove Nerd Font',
'Consolas',
}
config.font_size = 12.5
config.line_height = 1.08
config.color_scheme = 'Tokyo Night Storm'
config.window_background_opacity = 0.94
config.text_background_opacity = 1.0
config.window_decorations = 'RESIZE'
config.initial_cols = 150
config.initial_rows = 40
config.window_padding = {
left = 14,
right = 14,
top = 10,
bottom = 8,
}
config.use_fancy_tab_bar = false
config.hide_tab_bar_if_only_one_tab = false
config.tab_bar_at_bottom = false
config.default_cursor_style = 'BlinkingBlock'
config.cursor_blink_rate = 650
config.inactive_pane_hsb = {
saturation = 0.8,
brightness = 0.7,
}
----------------------------------------------------------------------
-- Keys
----------------------------------------------------------------------
config.keys = {
{ 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 = 'z', mods = 'ALT', action = act.TogglePaneZoomState },
{ key = 'v', mods = 'ALT', action = act.SplitHorizontal { domain = 'CurrentPaneDomain' } },
{ key = 's', mods = 'ALT', action = act.SplitVertical { domain = 'CurrentPaneDomain' } },
{ key = 'w', mods = 'ALT', action = act.CloseCurrentPane { confirm = true } },
}
----------------------------------------------------------------------
-- Auto Layout: Left Yazi, Right Top Codex, Right Bottom Shell
----------------------------------------------------------------------
wezterm.on('gui-startup', function(cmd)
local mux = wezterm.mux
local project_dir = 'D:/OS'
-- 1. 创建主窗口,左侧 pane 跑 Yazi
local tab, yazi_pane, window = mux.spawn_window {
workspace = 'Ciallo~( ̄▽ ̄~)',
cwd = project_dir,
args = { 'pwsh.exe', '-NoLogo', '-NoExit', '-Command', 'yazi' },
}
-- 2. 从 Yazi 右侧切出 Codex pane
local codex_pane = yazi_pane:split {
direction = 'Right',
size = 0.5,
cwd = project_dir,
args = { 'pwsh.exe', '-NoLogo', '-NoExit', '-Command', 'codex --yolo resume' },
}
-- 3. 从 Codex 下方切出 Shell pane
codex_pane:split {
direction = 'Bottom',
size = 0.4,
cwd = project_dir,
args = { 'pwsh.exe', '-NoLogo' },
}
tab:set_title('Ciallo~( ̄▽ ̄~)')
end)
return config注意,我这里配置了类似vim的快捷键,可以去掉的。
另一套是写代码的时候用的,左上左下都是codex,右上右下都是shell:
local wezterm = require 'wezterm'
local act = wezterm.action
local config = wezterm.config_builder()
----------------------------------------------------------------------
-- Basic
----------------------------------------------------------------------
config.default_prog = { 'pwsh.exe', '-NoLogo' }
config.default_cwd = 'D:/OS'
----------------------------------------------------------------------
-- Appearance
----------------------------------------------------------------------
config.font = wezterm.font_with_fallback {
'JetBrainsMono Nerd Font',
'CaskaydiaCove Nerd Font',
'Consolas',
}
config.font_size = 12.5
config.line_height = 1.08
config.color_scheme = 'Tokyo Night Storm'
config.window_background_opacity = 0.94
config.text_background_opacity = 1.0
config.window_decorations = 'RESIZE'
config.initial_cols = 160
config.initial_rows = 42
config.window_padding = {
left = 14,
right = 14,
top = 10,
bottom = 8,
}
config.use_fancy_tab_bar = false
config.hide_tab_bar_if_only_one_tab = false
config.tab_bar_at_bottom = false
config.default_cursor_style = 'BlinkingBlock'
config.cursor_blink_rate = 650
config.inactive_pane_hsb = {
saturation = 0.8,
brightness = 0.7,
}
----------------------------------------------------------------------
-- Keys
----------------------------------------------------------------------
config.keys = {
{ 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 = 'z', mods = 'ALT', action = act.TogglePaneZoomState },
{ key = 'v', mods = 'ALT', action = act.SplitHorizontal { domain = 'CurrentPaneDomain' } },
{ key = 's', mods = 'ALT', action = act.SplitVertical { domain = 'CurrentPaneDomain' } },
{ key = 'w', mods = 'ALT', action = act.CloseCurrentPane { confirm = true } },
}
----------------------------------------------------------------------
-- Auto Layout: 2x2
-- Left Top: Codex
-- Left Bottom: Codex
-- Right Top: Shell
-- Right Bottom: Shell
----------------------------------------------------------------------
wezterm.on('gui-startup', function(cmd)
local mux = wezterm.mux
local project_dir = 'D:/OS'
-- 1. 创建左上 pane:Codex 1
local tab, codex_top_left, window = mux.spawn_window {
workspace = 'Ciallo~( ̄▽ ̄~)',
cwd = project_dir,
args = { 'pwsh.exe', '-NoLogo', '-NoExit', '-Command', 'codex --yolo resume' },
}
-- 2. 从左上向右切出右上 pane:Shell 1
local shell_top_right = codex_top_left:split {
direction = 'Right',
size = 0.5,
cwd = project_dir,
args = { 'pwsh.exe', '-NoLogo' },
}
-- 3. 从左上向下切出左下 pane:Codex 2
codex_top_left:split {
direction = 'Bottom',
size = 0.5,
cwd = project_dir,
args = { 'pwsh.exe', '-NoLogo', '-NoExit', '-Command', 'codex --yolo resume' },
}
-- 4. 从右上向下切出右下 pane:Shell 2
shell_top_right:split {
direction = 'Bottom',
size = 0.5,
cwd = project_dir,
args = { 'pwsh.exe', '-NoLogo' },
}
tab:set_title('Ciallo~( ̄▽ ̄~)')
end)
return config当然你也可以改成claude code或者修改路径或者修改启动命令,都是可以的。所有不符合你的想法,ai一下改改配置,挺舒服的:

简单的切换就是:
Alt + h 切到左边 pane
Alt + l 切到右边 pane
Alt + k 切到上面 pane
Alt + j 切到下面 pane
Alt + w 删除plane
复制:Ctrl + Shift + C
粘贴:Ctrl + Shift + V上面我们配置.wezterm.lua其实是所有东西都塞进去了,可以分开的:
C:\Users\用户\
├── .wezterm.lua
└── .config\
└── wezterm\
├── appearance.lua
├── keys.lua
└── launch.lua如果不想每次都手动分屏,可以用 WezTerm 的 wezterm cli spawn 做脚本化启动。官方说明 wezterm cli spawn 可以生成新的 tab、window 或 pane,并返回新 pane 的 id。