打造极致终端体验:Kitty + Yazi + Starship 现代 CLI 工具链配置指南

lxiol
📝
为什么终端在 AI 时代变得前所未有地重要大模型正在重新定义软件开发的工作方式,而一个容易被忽视的事实是:这一

原文链接:https://mp.weixin.qq.com/s/gbGpsuLc3bsROnZRN4zrJA

为什么终端在 AI 时代变得前所未有地重要大模型正在重新定义软件开发的工作方式,而一个容易被忽视的事实是:这一

为什么终端在 AI 时代变得前所未有地重要

大模型正在重新定义软件开发的工作方式,而一个容易被忽视的事实是:这一轮变革的主战场在终端,不在 IDE。

Claude Code、Aider、Cursor Agent、Codex CLI —— 当下最前沿的 AI 编程工具,无一例外以命令行为核心交互界面。这不是偶然。终端拥有 IDE 永远无法匹敌的优势:它是 AI Agent 的原生操作系统 —— 无需 GUI 层的翻译与适配,指令直达内核;它是无限可组合的工作流管道 —— git diff的输出可以直接喂给 AI,AI 的修改可以直接进入 git commit;它还是最轻量的上下文容器 —— 几十行配置就能构建一套完整的开发环境,而不是动辄数 GB 的 IDE 插件生态。

但现实是,大多数开发者的终端还停留在默认状态:白色背景、无图标、无分屏、无智能跳转。用这样的终端和 AI 协作,就像开着面包车跑 F1 —— 引擎再强,底盘拖后腿。

**你的终端就是你和 AI 之间的工作台。**工作台越高效,AI 的产出越能被充分利用。

本文提供的是一套经过实战验证的终端配置方案,专为 AI 时代的开发者设计:

  • 分屏是刚需— 左屏跑 Claude Code,右屏跑测试/日志,AI 的输出和验证结果同屏可见
  • 文件浏览要快— AI 改了 20 个文件,你需要一眼看清改动范围,yd一键定位
  • Git 集成要深— 每次提交都有 AI 的痕迹,提示符实时显示仓库状态,gs比 GUI 更快
  • 视觉要统一— 深色主题保护长时间工作的眼睛,Catppuccin Mocha 让 Kitty/Yazi/Starship/bat 一体化

6 个配置文件 + 1 段 Zsh 增强,统一 Catppuccin Mocha 深色主题。每个配置文件都是完整可复制的最佳实践,附带逐行注释和踩坑说明。

配置总览

组件

版本

用途

配置文件

🐱 Kitty

0.46+

GPU 加速终端模拟器

~/.config/kitty/kitty.conf

📂 Yazi

26.x

超快终端文件管理器

~/.config/yazi/yazi.tomlkeymap.tomltheme.toml

🐚 Zsh

系统自带

Shell 增强与别名

~/.zshrc末尾追加

🚀 Starship

1.x

跨 Shell 自定义提示符

~/.config/starship.toml

🧰 eza

0.23+

ls替代,图标 + Git 状态

通过 Zsh 别名调用

🦇 bat

0.26+

cat替代,语法高亮 + 行号

通过 Zsh 别名调用

辅助工具:zoxide(智能 cd)、fzf(模糊搜索)、fd(快速查找)、ripgrep(快速 grep)

一键安装

从零开始,执行以下命令即可完成全部安装:

1
2
3
4
5
6
7
8
`# 核心工具
brew install kitty yazi starship eza bat zoxide fzf fd ripgrep neovim

# Nerd Font(图标显示必需)
brew install --cask font-jetbrains-mono-nerd-font

# 创建配置目录
mkdir -p ~/.config/kitty ~/.config/yazi ~/.config/starship ~/.config/bat`

安装完成后,把下面 6 个配置文件放到对应位置,然后在 ~/.zshrc末尾追加 Zsh 增强段,重启终端即可。

文件 1:~/.config/kitty/kitty.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
`# ============================================
# 🐱 Kitty 终端配置 — Catppuccin Mocha 主题
# ============================================

# ---------- 字体 ----------
# 使用 Nerd Font 版本,图标才不会显示为方框
# 安装:brew install --cask font-jetbrains-mono-nerd-font
# ⚠️ 字体名必须和 fc-list 输出完全一致,不能用简称
font_family      JetBrainsMono Nerd Font
bold_font        JetBrainsMono Nerd Font Bold
italic_font      JetBrainsMono Nerd Font Italic
font_size        14

# ---------- 窗口 ----------
window_padding_width    8
# ⚠️ 用字符单位 (c) 而非像素,确保不同 DPI 下尺寸一致
initial_window_width    120c
initial_window_height   36c
hide_window_decorations yes
confirm_os_window_close 0
remember_window_size    yes

# ---------- 布局 ----------
# ⚠️ 必须启用 splits 布局,否则 hsplit/vsplit 行为一致
# blossom 不是有效布局名,Kitty 0.46 支持的布局:splits,stack,fat,grid,horizontal,vertical
enabled_layouts splits,stack,fat,grid,horizontal,vertical

# ---------- 分屏快捷键 ----------
# ⚠️ Kitty 的 map 行不支持行内 # 注释!注释必须写在独立行
# 否则会报错 "Failed to launch child: #"
# hsplit = 水平分割线(上下分屏,新面板在下方)
# vsplit = 垂直分割线(左右分屏,新面板在右侧)
# ⚠️ macOS 上 ctrl+shift+minus 容易被系统拦截,用 ctrl+shift+backslash 更可靠
# ⚠️ --cwd=current 让新分屏继承当前目录,否则会打开 ~
map ctrl+shift+enter       launch --location=hsplit --cwd=current
map ctrl+shift+backslash   launch --location=vsplit --cwd=current
# 关闭当前分屏面板
map ctrl+shift+w           close_window
# 分屏间移动(Vim 风格 HJKL)
map ctrl+shift+h           neighboring_window left
map ctrl+shift+j           neighboring_window down
map ctrl+shift+k           neighboring_window up
map ctrl+shift+l           neighboring_window right
# 布局
map ctrl+shift+z           toggle_layout stack
map ctrl+shift+space       next_layout
map ctrl+shift+f           toggle_fullscreen

# ---------- 标签页 ----------
map ctrl+shift+t       new_tab
map ctrl+shift+right  next_tab
map ctrl+shift+left   previous_tab
map ctrl+shift+q      close_tab

# ---------- 复制粘贴 ----------
map ctrl+shift+c       copy_to_clipboard
map ctrl+shift+v       paste_from_clipboard

# ---------- 字体缩放 ----------
map ctrl+plus          change_font_size all +2.0
map ctrl+minus         change_font_size all -2.0
map ctrl+0             change_font_size all 0

# ---------- 光标 ----------
cursor_shape           block
cursor_blink_interval  0.5

# ---------- 滚动 ----------
scrollback_lines       10000
wheel_scroll_multiplier 5.0

# ---------- 交互增强 ----------
enable_audio_bell      no
allow_remote_control   yes
url_style              curly
url_prefixes           file http https ftp ftps gemini git
open_url_with          default

# ---------- 标签栏样式 ----------
tab_bar_edge          bottom
tab_bar_style         powerline
tab_powerline_style   slanted
active_tab_font_style bold
tab_title_template    " {index}: {title} "
active_tab_foreground   [#1e1e2e]()
active_tab_background  [#89b4fa]()
inactive_tab_foreground   [#6c7086]()
inactive_tab_background  [#313244]()

# ============================================
# 🎨 Catppuccin Mocha — 完整 16 色手动指定
# 不依赖外部主题文件,复制即用
# ============================================
background            [#1e1e2e]()
foreground            [#cdd6f4]()
selection_background  [#585b70]()
selection_foreground  [#cdd6f4]()
url_color             [#f5c2e7]()
cursor                [#f5e0dc]()
active_border_color   [#b4befe]()
inactive_border_color [#6c7086]()
macos_titlebar_color  [#1e1e2e]()

color0  [#45475a]()
color8  [#585b70]()
color1  [#f38ba8]()
color9  [#f38ba8]()
color2  [#a6e3a1]()
color10 [#a6e3a1]()
color3  [#f9e2af]()
color11 [#f9e2af]()
color4  [#89b4fa]()
color12 [#89b4fa]()
color5  [#f5c2e7]()
color13 [#f5c2e7]()
color6  [#94e2d5]()
color14 [#94e2d5]()
color7  [#bac2de]()
color15 [#a6adc8]()`

Kitty 踩坑清单

问题

原因

解决

分屏报错 Failed to launch child: #

map行不支持行内 #注释

注释写在独立行

字体回退到 Menlo

字体名和 fc-list输出不一致

用 `fc-list

hsplit/vsplit 效果一样

未启用 splits布局

加 enabled_layouts splits,stack,...

blossom布局报错

不是有效布局名

用 splits,stack,fat,grid,horizontal,vertical

macOS 上 ctrl+shift+-不生效

系统拦截或键名识别异常

改用 ctrl+shift+backslash

分屏后目录变成 ~

默认 launch不继承当前目录

加 --cwd=current

SSH 后 vim/less 报错

远程服务器没有 Kitty terminfo

用 infocmp检测后再设 TERM(见 Zsh 配置段)

修改配置后不生效

需要重载

kitty @ load-config或重启 Kitty

文件 2:~/.config/yazi/yazi.toml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
`# ============================================
# 📂 Yazi 文件管理器 — 核心配置
# ============================================

[mgr]
show_hidden = true
sort_by = "alphabetical"
sort_dir_first = true
sort_reverse = false
scrolloff = 2

[preview]
max_width = 600
max_height = 900
image_quality = 75
# triangle 是速度和画质的平衡点,nearest 模糊,gaussian 慢
image_filter = "triangle"

# ---------- 打开方式 ----------
# ⚠️ Yazi 0.4+ 把 run 字段改为了 use,旧版用 run 会报 "missing field `use`"
# use = "edit" 用编辑器打开(文本文件推荐)
# use = "open" 用系统默认程序打开
# use = "reveal" 在文件管理器中显示
[open]
rules = [
  { mime = "text/*",              use = "edit" },
  { mime = "image/*",             use = "open" },
  { mime = "video/*",             use = "open" },
  { mime = "audio/*",             use = "open" },
  { mime = "application/pdf",    use = "open" },
  { name = "*",                   use = "open" },
]`

Yazi 踩坑清单

问题

原因

解决

报错 missing field 'use'

Yazi 0.4+ 将 run改为了 use

把 run = "open"改为 use = "open"

报错 invalid key-value pair

keymap.toml 用了旧的内联表格式

改为 [[manager.keymap]]数组表格式

图标显示方框

未安装 Nerd Font

安装 font-jetbrains-mono-nerd-font

退出后目录没变

没用 y函数启动

用 y代替 yazi命令(见 Zsh 配置段)

j/k 方向反了

arrow 1是下移,arrow -1是上移

j→arrow 1,k→arrow -1

文件 3:~/.config/yazi/keymap.toml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
`# ============================================
# ⌨️ Yazi 快捷键配置
# ⚠️ Yazi 0.4+ 必须使用 [[manager.keymap]] 数组表格式
# 旧版内联表格式 { on = [...], run = "..." } 会报错
# ============================================

# 导航 — Vim 风格 HJKL
[[manager.keymap]]
on = [ "h" ]
run = "leave"
desc = "返回上级目录"

[[manager.keymap]]
on = [ "j" ]
run = "arrow 1"
desc = "向下移动"

[[manager.keymap]]
on = [ "k" ]
run = "arrow -1"
desc = "向上移动"

[[manager.keymap]]
on = [ "l" ]
run = "enter"
desc = "进入目录 / 打开文件"

# 智能跳转
[[manager.keymap]]
on = [ "z" ]
run = "cd"
desc = "fzf 快速跳转"

[[manager.keymap]]
on = [ "Z" ]
run = "cd --interactive"
desc = "zoxide 智能跳转"

# 标签页
[[manager.keymap]]
on = [ "t" ]
run = "tab_create"
desc = "新建标签页"

[[manager.keymap]]
on = [ "]" ]
run = "tab_switch 1"
desc = "下一个标签页"

[[manager.keymap]]
on = [ "[" ]
run = "tab_switch -1"
desc = "上一个标签页"

[[manager.keymap]]
on = [ "1" ]
run = "tab_switch 1"
desc = "切换到第 1 个标签页"

[[manager.keymap]]
on = [ "2" ]
run = "tab_switch 2"
desc = "切换到第 2 个标签页"

[[manager.keymap]]
on = [ "3" ]
run = "tab_switch 3"
desc = "切换到第 3 个标签页"

[[manager.keymap]]
on = [ "4" ]
run = "tab_switch 4"
desc = "切换到第 4 个标签页"

[[manager.keymap]]
on = [ "5" ]
run = "tab_switch 5"
desc = "切换到第 5 个标签页"

# 排序 — 逗号作为 leader key
[[manager.keymap]]
on = [ ",", "m" ]
run = "sort_by modified"
desc = "按修改时间排序"

[[manager.keymap]]
on = [ ",", "a" ]
run = "sort_by alphabetical"
desc = "按字母排序"

[[manager.keymap]]
on = [ ",", "s" ]
run = "sort_by size"
desc = "按大小排序"

[[manager.keymap]]
on = [ ",", "r" ]
run = "sort_by random"
desc = "随机排序"`

文件 4:~/.config/yazi/theme.toml

1
2
3
4
`# Yazi 语法高亮预览使用 Catppuccin Mocha 主题
# 与 Kitty、Starship 配色保持统一
[syntect]
theme = "Catppuccin Mocha"`

文件 5:~/.config/starship.toml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
`# ============================================
# 🚀 Starship 提示符 — Catppuccin Mocha 配色
# ============================================

# 单行模式,不浪费垂直空间
add_newline = false

# 提示符格式:
# 第一行:蓝色方块 + 目录 + Git + 语言版本 + 耗时
# 第二行:➜ 输入符(成功绿、失败红)
format = """
[]([#89b4fa]())\
$directory\
$git_branch\
$git_status\
$nodejs\
$python\
$rust\
$cmd_duration\
$line_break\
$character"""

# 目录 — 蓝色粗体,保留最近 3 层
[directory]
style = "bold [#89b4fa]()"
truncation_length = 3
truncate_to_repo = false

# Git 分支 — 绿色,带图标
[git_branch]
format = " [$branch]($style)"
style = "[#a6e3a1]()"
symbol = "🌿 "

# Git 状态 — 红色,一眼看出变更
[git_status]
conflicted = "🏳"
ahead = "⇡${count}"
behind = "⇣${count}"
diverged = "⇕${count}"
untracked = "?${count}"
stashed = "📦"
modified = "!${count}"
staged = "+${count}"
renamed = "»${count}"
deleted = "✘${count}"
style = "[#f38ba8]()"

# 语言版本 — 只在对应项目目录内才显示
[nodejs]
format = " via [⬢ $version](bold [#89b4fa]())"

[python]
format = " via [🐍 $version](bold [#f5c2e7]())"

[rust]
format = " via [🦀 $version](bold [#f38ba8]())"

# 命令耗时 — 灰色低调,超过 2 秒才显示
[cmd_duration]
format = " [⏱ $duration]($style)"
style = "[#6c7086]()"

# 输入提示符 — 成功绿色、失败红色
[character]
success_symbol = "[➜](bold [#a6e3a1]())"
error_symbol = "[➜](bold [#f38ba8]())"`

Starship 最佳实践

  • add_newline = false— 开发者屏幕纵向空间宝贵,单行模式更紧凑
  • truncate_to_repo = false— 在 Git 仓库内也显示完整路径层级,避免同名目录混淆
  • 语言模块只保留 Node/Python/Rust— 按需增减,太多语言图标会让提示符很长
  • cmd_duration** 默认 2 秒阈值** — 短命令不显示耗时,长命令才提醒

文件 6:~/.zshrc 末尾追加段

将以下内容追加到 ~/.zshrc末尾(不要替换已有内容):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
`# ============================================
# 终端三件套(Kitty + Yazi + Zsh)
# ============================================

# ---------- Yazi Shell Wrapper ----------
# 用 y 打开 Yazi,退出后自动 cd 到最后浏览的目录
# ⚠️ 必须用 y 而不是 yazi,否则退出后目录不会变
function y() {
    local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
    command yazi "$@" --cwd-file="$tmp"
    if IFS= read -r -d '' cwd < "$tmp"; then
        [ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd"
    fi
    rm -f -- "$tmp"
}

# ---------- zoxide 智能跳转(替代 cd) ----------
# z foo       → 跳到最常访问的包含 "foo" 的目录
# z foo bar   → 跳到同时包含 "foo" 和 "bar" 的目录
eval "$(zoxide init zsh)"

# ---------- fzf 模糊搜索 ----------
# Tab 补全增强,Ctrl+R 搜索历史
eval "$(fzf --zsh)"

# ---------- 现代 CLI 替代 ----------
# ⚠️ 别名定义顺序很重要:ls 必须先定义,ll/la/lt 才能展开
# eza 替代 ls — 图标 + 颜色 + Git 状态
alias ls='eza --icons=auto'
alias ll='ls -la'
alias la='ls -A'
alias lt='ls --tree'
# bat 替代 cat — 语法高亮 + 行号;管道中自动降级为普通 cat
alias cat='bat'
# ripgrep 替代 grep — 默认递归,尊重 .gitignore
alias grep='rg'
# fd 替代 find — 更直觉的语法,彩色输出
alias find='fd'
# neovim 替代 vim
alias vim='nvim'
alias vi='nvim'

# ---------- 终端快捷键 ----------
alias c='clear'
alias q='exit'
alias reload='source ~/.zshrc'

# ---------- Git 浏览(Yazi + fzf) ----------
# yg: 在 Git 仓库根目录打开 Yazi(按 ,m 按修改时间排序看最近改动)
function yg() {
    local root="$(git rev-parse --show-toplevel 2>/dev/null)"
    if [ -n "$root" ]; then
        cd "$root" && y
    else
        echo "不在 Git 仓库中" && return 1
    fi
}

# yd: 从 Git 改动文件中选择,用 Yazi 打开并跳转到该文件
#   yd        → 当前未提交的改动(工作区 + 暂存区)
#   yd 3      → 最近 3 次提交的改动
#   yd HEAD~5  → 某次提交范围的改动
function yd() {
    local files
    if [ -n "$1" ] && [[ "$1" =~ ^[0-9]+$ ]]; then
        # 数字参数:最近 N 次提交的改动
        files="$(git diff --name-only HEAD~${1} HEAD 2>/dev/null)"
    elif [ -n "$1" ]; then
        # 提交范围参数
        files="$(git diff --name-only "$1" 2>/dev/null)"
    else
        # 无参数:工作区 + 暂存区改动
        files="$(git diff --name-only HEAD 2>/dev/null)"
    fi
    if [ -z "$files" ]; then
        echo "没有找到改动文件" && return 1
    fi
    local target="$(echo "$files" | fzf --prompt="改动文件> " --preview='git diff HEAD -- {} | head -80')"
    if [ -n "$target" ]; then
        local dir="$(dirname "$target")"
        [ -d "$dir" ] && cd "$dir" && y
    fi
}

# ---------- Git 快捷键 ----------
alias g='git'
alias gc='git commit'
alias gs='git status'
alias gp='git push'
alias gl='git log --oneline --graph'

# ---------- 路径跳转 ----------
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'

# ---------- Kitty 终端环境 ----------
# 24 位真色彩支持
export COLORTERM=truecolor
# ⚠️ SSH 到远程服务器时,如果对方没有 Kitty terminfo 就会报错
# 所以先检测再设置,找不到时回退到 xterm-256color
if infocmp xterm-kitty >/dev/null 2>&1; then
    export TERM=xterm-kitty
else
    export TERM=xterm-256color
fi

# ---------- Starship 提示符 ----------
eval "$(starship init zsh)"`

Zsh 最佳实践

  • 别名顺序— ls先定义,ll/la/lt后定义,这样才能正确展开为 eza --icons=auto -la
  • eval** 放末尾** — zoxide initfzf --zshstarship init zsh必须在所有别名之后,确保初始化顺序正确
  • TERM** 检测** — 直接写 TERM=xterm-kitty会导致 SSH 到没有 Kitty terminfo 的服务器时 vim/less 报错,必须用 infocmp先检测
  • bat** 自动降级** — 管道中 bat自动变为普通 cat,所以 something | grep foo这类用法不会受影响
  • y** 函数** — 用临时文件传递目录,比旧版的 YA环境变量方案更可靠

bat 主题配置:~/.config/bat/config

1
2
3
4
5
6
7
8
9
`# 使用 Catppuccin Mocha 主题,与终端配色统一
# 主题列表:bat --list-themes
--theme="Catppuccin Mocha"

# 行号始终显示
--style="numbers,changes"

# 使用 --paging=auto 让短输出不分页
--paging=auto`

安装 Catppuccin Mocha 主题:

1
2
3
4
5
6
`# bat 内置了 Catppuccin 系列,直接可用
# 如果不可用,手动安装:
mkdir -p "$(bat --config-dir)/themes"
curl -o "$(bat --config-dir)/themes/Catppuccin Mocha.tmTheme" \
  https://raw.githubusercontent.com/catppuccin/bat/main/themes/Catppuccin%20Mocha.tmTheme
bat cache --build`

日常使用速查表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
`┌─────────────────────────────────────────────────────────────┐
│                    Kitty 快捷键                              │
├─────────────────────────────────────────────────────────────┤
│  Ctrl+Shift+Enter       水平分屏(上下分割,新面板在下方)  │
│  Ctrl+Shift+\           垂直分屏(左右分割,新面板在右侧)  │
│  Ctrl+Shift+W           关闭当前分屏面板                  │
│  Ctrl+Shift+H/J/K/L    分屏间移动                        │
│  Ctrl+Shift+Z           堆叠模式                          │
│  Ctrl+Shift+Space       切换布局                          │
│  Ctrl+Shift+F           全屏切换                          │
│  Ctrl+Shift+T           新标签页                          │
│  Ctrl+Shift+←/→         切换标签页                       │
│  Ctrl+Shift+Q           关闭标签页                       │
│  Ctrl++/-/0             字体放大/缩小/重置               │
├─────────────────────────────────────────────────────────────┤
│                    Yazi 快捷键                              │
├─────────────────────────────────────────────────────────────┤
│  H/J/K/L              返回上级/下/上/进入                   │
│  z                    fzf 模糊跳转                          │
│  Z                    zoxide 智能跳转                       │
│  t                    新标签页                              │
│  ]/[                  下一个/上一个标签页                   │
│  1-5                  切换到第 N 个标签页                   │
│  ,m / ,a / ,s         按修改时间/字母/大小排序              │
│  q                    退出(回到最后浏览的目录)             │
├─────────────────────────────────────────────────────────────┤
│                    Shell 命令与别名                          │
├─────────────────────────────────────────────────────────────┤
│  y                    打开 Yazi(退出自动 cd)               │
│  z <关键词>            zoxide 智能跳转                     │
│  ls / ll / la / lt    eza 系列(图标+颜色+Git)           │
│  cat                  bat(语法高亮+行号)                   │
│  grep                 ripgrep(递归+Git感知)               │
│  find                 fd(直觉语法+彩色)                   │
│  .. / ... / ....      上 1/2/3 级目录                      │
│  yg                   Yazi 打开 Git 仓库根目录             │
│  yd                   fzf 选 Git 改动文件 → Yazi 打开       │
│  yd 3                 最近 3 次提交的改动文件              │
│  gs / gc / gp / gl   Git 快捷操作                        │
│  reload               重载 .zshrc                          │
└─────────────────────────────────────────────────────────────┘`

设计哲学

  • 视觉统一— Kitty、Yazi、Starship、bat 全部使用 Catppuccin Mocha 配色,深色背景 [#1e1e2e](),蓝/绿/粉为功能色
  • 肌肉记忆复用— Vim 式 HJKL 导航贯穿 Kitty 分屏和 Yazi,不需要学两套键位
  • 渐进增强— 所有别名都是对原命令的增强包装(lsezacatbat),管道场景自动降级
  • 开箱即用— 不依赖外部主题文件,所有颜色手动指定,复制配置即可生效

完整文件清单

1
2
3
4
5
6
7
8
9
10
`~/.config/
├── kitty/kitty.conf          # 终端模拟器配置
├── yazi/
│   ├── yazi.toml             # 文件管理器核心配置
│   ├── keymap.toml            # 快捷键配置
│   └── theme.toml             # 主题配置
├── starship.toml              # 提示符配置
└── bat/config                 # bat 主题配置

~/.zshrc                       # 末尾追加 Zsh 增强段`

修改配置后:Kitty 用 kitty @ load-config热重载;Zsh 用 source ~/.zshrc;Starship/Yazi 自动生效。


💬 本文评论区已开启,但暂无读者留言。

本文转载自微信公众号,如有侵权请联系删除。

  • 标题: 打造极致终端体验:Kitty + Yazi + Starship 现代 CLI 工具链配置指南
  • 作者: lxiol
  • 创建于 : 2026-04-29 20:24:16
  • 更新于 : 2026-05-12 16:07:04
  • 链接: https://blog.lxiol.cn/2026/04/29/打造极致终端体验Kitty-Yazi-Starship-现代-CLI-工具链配置指南/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。