基于 Zsh + 自管 Neovim (lazy.nvim) + 本地 AI 工具 (Herdr) 的全套极速、开箱即用终端配置方案。 纯公开、可独立使用;非 NixOS 平台支持一行命令跨平台初始化,NixOS 系统包由
~/nixos-config管理。
本仓库是三层配置中的 公开基础层:只保存可公开复用的 Zsh、Neovim 和 CLI
配置。NixOS 系统包、服务、硬件及 Nixarchy 接线位于 ~/nixos-config;个人
软件、Agent、输入法、终端与敏感配置编排位于私有 ~/chezmoi。同一配置只在
一个仓库拥有,不跨仓库复制。
- 跨平台全自动适配:原生支持 Debian / Ubuntu / Arch Linux / Fedora / Void / NixOS / macOS。
- NixOS 软件包边界:检测到 NixOS 时,
init.sh不执行任何 Nix 软件包安装,只提示用户通过~/nixos-config的包模块声明并重建系统;用户目录配置和插件仍由本仓库部署。 - 一行命令完成初始化:在支持的非 NixOS 平台自动安装所需工具链(
eza、bat、fd、ripgrep、zoxide、fzf、jq、btop等)、Nerd Font 字体、Zsh 插件与软链接;NixOS 的系统软件包和字体由~/nixos-config管理。
- Zinit 异步加载:零延迟秒开,告别臃肿缓慢的 oh-my-zsh。
- Starship 智能 Prompt:优雅、信息丰富、极速渲染的终端提示符。
-
zsh-vi-mode 深度整合:原生 Vim 命令行编辑模式,在终端直接享受
hjkl。 -
强大的补全与历史:
-
fzf-tab:可视化的模糊搜索交互补全界面。 -
zsh-autosuggestions+zsh-autopair:智能历史建议与括号自动配对。 -
Atuin(Ctrl+R):支持上下文关联的增强版命令历史搜索。 -
Zoxide(z):智能目录学习与快速跳转。
-
-
现代 CLI 替换传统命令:
-
ls$\rightarrow$ eza(带色彩与图标的高颜值文件列表,支持l,ll,la) -
cat$\rightarrow$ bat(带语法高亮与行号的文件查看器) -
find$\rightarrow$ fd/grep$\rightarrow$ ripgrep(千百倍极速文本与文件检索)
-
- 纯自管轻量架构:直接基于
lazy.nvim精心构建,非 臃肿黑盒发行版(非 AstroNvim/LazyVim),代码结构透明清晰,启动时间 < 50ms。 - 完整的现代 IDE 能力:
- LSP 自动管理:Mason + Mason-LSPconfig 一键安装并管理各语言 Language Server。
- 代码补全与格式化:Blink.cmp 极速智能补全 + Conform 自动代码格式化。
- 语法分析与高亮:Treesitter 语法高亮、代码折叠与文本对象。
- 生产力神器合集:
Telescope+Snacks:极速模糊搜索文件、文本与符号。Neo-tree+Oil.nvim:支持双模式文件树管理(侧边栏文件树 + Buffer 自由编辑重构目录)。Flash.nvim:键盘任意位置双键直达跳转。Gitsigns+hunk-review.nvim:行级 Git 变动高亮与 Agent 代码审查。 详细用法见config/nvim/HUNK-REVIEW.md。Auto-session:根据工作目录(cwd)全自动保存和恢复编辑现场。Yanky.nvim:支持持久化剪贴板历史与循环粘贴。Vimquest:内置英语单词拼写练习扩展。
- 内置热门本地 AI 助手 Herdr:
init.sh脚本自动安装并配置当前热门的终端本地 AI 编程助手 Herdr。- 预置优雅的主题配置文件(
~/.config/herdr/config.toml),开箱即用。
- 轻量文件管理器:内置配置好的
Ranger(按ra快速调用)与Vifm(按v快速调用)。 - 自研零依赖软链工具
dotlink:纯 Shell 编写的极简配置软链管理器,不依赖 Chezmoi 或任何外部工具即可独立运转。
git clone https://github.com/iamcheyan/dotfiles.git ~/dotfiles
cd ~/dotfilesbash init.sh # 推荐:完整初始化(NixOS 系统包由 nixos-config 管理)
bash init.sh --minimal # 轻量安装(跳过字体等大型组件)
bash init.sh --repair # 修复损坏的插件缓存初始化脚本会自动完成:
- 按平台检查或安装 Zsh,并在用户确认后设为默认 Shell。
- 在非 NixOS 平台安装必备现代工具链(
git、curl、ripgrep、fd、bat、eza、zoxide、fzf、jq、btop等);NixOS 由~/nixos-config管理。- 安装配置
zinit、Starship、Atuin;非 NixOS 平台额外配置fnm。- 在非 NixOS 平台安装 Neovim;插件与 Treesitter 解析器在 Zsh 启动时按配置加载。
- 在支持的非 NixOS Linux 发行版安装 Docker 与 Herdr 本地 AI 助手。
- 通过
dotlink自动建立全部配置文件的符号链接。
init.sh 会按平台安装 Fresh:Linux/WSL 使用官方 universal installer,macOS 使用 Homebrew,Windows(Git Bash/MSYS/Cygwin)使用 winget。NixOS 不执行独立安装,由 ~/nixos-config 的 fresh-editor 包管理;安装后可用 fr 启动。
bash dotlink/dotlink link
exec zshPersonal aliases and Zsh overrides can be stored in the repository's local directory. The directory is prepared with a usage guide, while user-created files remain ignored:
mkdir -p "$HOME/dotfiles/local"
$EDITOR "$HOME/dotfiles/local/custom.zsh"Every regular file in local/ is loaded last by zshrc, after the public
aliases and plugins, so the files can define aliases, functions, environment
variables, and other Zsh settings. README.md is skipped. Only
local/README.md is tracked. Other files under local/ are ignored by Git
and are never overwritten by a git pull or dotfiles update. init.sh does
not create this directory; create it only when you need local overrides.
Example:
# ~/dotfiles/local/custom.zsh
alias work='cd ~/work'
export PROJECTS_DIR="$HOME/projects"通过 dotlink 会在系统中建立以下干净的符号链接:
| 源码路径 | 目标部署路径 | 对应功能 |
|---|---|---|
~/dotfiles/zshrc |
~/.zshrc |
Zsh 主配置文件 |
~/dotfiles/config/nvim |
~/.config/nvim |
Neovim 完整 IDE 配置 |
~/dotfiles/config/ranger |
~/.config/ranger |
Ranger 终端文件管理器 |
~/dotfiles/config/vifm/* |
~/.config/vifm/* |
Vifm 终端文件管理器 |
~/dotfiles/config/atuin |
~/.config/atuin |
Atuin 命令历史搜索配置 |
~/dotfiles/config/herdr/config.toml |
~/.config/herdr/config.toml |
Herdr 本地 AI 助手配置 |
~/dotfiles/config/starship/starship.toml |
~/.config/starship.toml |
Starship 终端提示符主题 |
Ctrl + R:呼出 Atuin 增强版历史命令搜索Esc:进入命令行 Vim 普通模式(支持h/j/k/l移动、w/b跳词、dd删行、cw改词)l/ll/la:调用eza查看带图标与 Git 状态的文件列表z <目录名>:Zoxide 智能跳转目录ra:打开 Ranger 并在退出时自动cd到最后停留的目录v:打开 Vifm 并在退出时自动cd到最后停留的目录
<Space> e:展开/折叠 Neo-tree 侧边栏文件树-:打开 Oil 目录编辑器(直接把目录当作 Buffer 增删重命名文件)<Space> ff:全局模糊查找文件(Find Files)<Space> fg:全局代码文本搜索(Live Grep)<Space> gg:打开 Lazygit 交互界面<Space> xx:打开 Trouble 错误与警告诊断列表s+ 双字符:Flash 屏幕任意位置双键直达跳转gcc:单行注释 / 取消注释gc:选中区域代码块注释
dotfiles/
├── zshrc # Zsh 主入口配置
├── aliases.conf # 通用别名与实用函数
├── init.sh # 跨平台初始化脚本
├── dotlink/ # 自研轻量符号链接管理器
├── config/ # 应用配置集合
│ ├── nvim/ # Neovim lazy.nvim 配置
│ ├── herdr/ # Herdr 本地 AI 助手配置
│ ├── ranger/ # Ranger 文件管理器配置
│ ├── vifm/ # Vifm 文件管理器配置
│ ├── atuin/ # Atuin 命令历史配置
│ └── starship/ # Starship 提示符主题
├── plugins/ # Zsh 插件与补全辅助
├── scripts/ # 安装与系统检测脚本
└── tools/ # 通用实用工具脚本
- 100% 通用开源:本仓库绝不包含任何个人 API Key、密码、Token、私有服务器 IP 或硬编码绝对路径。
- 独立运行:不强绑 Chezmoi 或任何私有系统,任何人均可放心 Fork 与二次定制。
本项目基于 MIT 许可证 开源。欢迎 Star 🌟 与 Fork!