系统设置
程序坞自动隐藏加速
启动台自定义行和列
常用软件安装
命令行工具
统一采用 Homebrew 对系统软件包进行管理,安装命令行工具时,优先考虑 Homebrew 提供的软件包。
差生文具多:
Prefer | Description | Replace |
---|---|---|
eza | A modern, maintained replacement for ls. | ls |
zoxide | A smarter cd command, supports all major shells. | cd |
htop | An interactive process viewer. | top |
ripgrep | ripgrep recursively searches directories for a regex pattern while respecting your gitignore. | grep |
ncdu | Ncdu (NCurses Disk Usage) is a disk usage analyzer with an ncurses interface. | du |
bat | A cat(1) clone with wings. | cat |
fd | A simple, fast and user-friendly alternative to ‘find’. | find |
procs | A modern replacement for ps written in Rust. | ps |
fzf | A general-purpose command-line fuzzy finder written in Go. | find |
fzf-tab | Replace zsh’s default completion selection menu with fzf. | find |
tokei | A program that displays statistics about your code. | cloc |
tldr | Collaborative cheatsheets for console commands. | man |
thefuck | Magnificent app which corrects your previous console command. | - |
lazygit | A simple terminal UI for git commands. | git |
lazydocker | A simple terminal UI for both docker and docker-compose. | docker |
fastfetch | Like neofetch, but much faster because written mostly in C. | neofetch |
delta | A syntax-highlighting pager for git, diff, and grep output. | diff |
yazi | Blazing fast terminal file manager written in Rust, based on async I/O. | finder |
终端利器 Fzf
在日常的 shell 环境中,可以通过 Fzf + Ripgrep + Bat + Vim 来提升效率,方便地管理文件及其内容。
-
文件查询:
使用 pf (preview file) 别名快速预览和选择文件。调用 Fzf 进行交互式模糊查找,并使用 Bat 在右侧窗口实现语法高亮,预览选中文件的前 500 行内容。可以通过 Shift+Up 和 Shift+Down 翻页,提高效率。如下图所示:
-
内容查询:
使用 rfv (ripgrep-fzf-vim) 函数进行全文内容搜索并在 Vim 中打开结果。搜索结果将实时展示在 Fzf 窗口中,并通过 Bat 预览文件的相关内容。绑定按键 Enter 键和 Ctrl+O 键以实现在 Vim 中打开搜索结果,便于进行进一步的编辑。如下图所示:
可以将以上内容添加至 ~/.zshrc
文件中,从而构建一个更加高效的命令行 Workflow。
Zsh 配置
常用的 Oh My Zsh 对于我来说略显臃肿,因此我选择使用 zinit 来管理插件。
至此,~/.zshrc
可以分为几个模块,分别定义不同的功能配置:
zinit 相关
在安装 zinit 的过程中,它会自动的接管 ~/.zshrc
,并向其中添加其相关配置如下:
加载环境变量
三个基础插件
- zdharma/fast-syntax-highlighting: 语法高亮,与
zsh-syntax-highlighting
功能几乎一致,个人使用习惯更偏向于 f-sy-h。 - zsh-users/zsh-autosuggestions: 自动补全,根据历史命令自动补全。
- zsh-users/zsh-completions: 补全插件,提供了常用命令的补全。
引入 fzf-tab
值得注意的一点是,根据 fzf-tab 的 README 中的 compatibility-with-other-plugins 所言,需要将 fzf-tab 的引入放在配置文件的最后部分,以避免和 zsh-completions 插件产生冲突。
通过以上的配置,可以实现在 cd 目录时,配合 fzf 的功能快速预览目标目录的文件结构:
定义别名
历史记录
Shell 集成
- starship:基于 Rust 的跨平台的 Shell 提示符,具有轻量、迅速、客制化的特点,选用 Tokyo Night Preset;
- thefuck:用于快速更改输错的命令,实际使用中比较鸡肋,使用场景没有预想的多;
- zoxide:用于快速跳转常用的工作目录;
- fnm:Node.js 版本管理工具。
最后,简单测试一下 Zsh 的启动时间:
-
采用直观的比较 Naive 的方式直接观测 zsh 的启动速度:
-
借助 zsh-bench 更完善的对 zsh 的启动时间进行基准测试:
确实挺不错的 :)
开发工具
- Warp:一个由 Rust 编写的跨平台终端,性能优秀,同时还有 AI 加持;
- VS Code:常用的轻量级代码编辑器,部分推荐插件如下:
- Zed Editor:采用 Rust 构建,性能强大速度快,支持 Copilot 和实时协作等,目前作为主力编辑器使用;
GUI 工具
统一采用 Homebrew Cask 进行管理。
开发环境
Tmux 配置
感谢 B 站 UP 主帕特里柯基在视频 和我一起配置 tmux 中分享的配置过程。我的 Tmux 配置基本是照搬过来:
MacOS 软件一键更新
准备工作
- 安装 brew-cask-upgrade:
- 验证
brew-cask-upgrade
是否安装成功: - 安装 mas,一个用于管理 Mac App Store 上的应用的命令行工具:
更新软件
升级所有已安装的软件:
-
brew update
:更新 Homebrew 自身及其相关软件源的信息,确保 Index 信息准确; -
brew upgrade
:将系统中已安装的所有 Homebrew 软件包升级到最新版本; -
brew cu --all --yes --cleanup
:自动升级所有可更新的 Homebrew cask 软件包到最新版本,并在完成后清理删除旧版本;
- —all: Include apps that auto-update in the upgrade.
- —yes: Update all outdated apps; answer yes to updating packages.
- —cleanup: Cleans up cached downloads and tracker symlinks after updating.
-
mas upgrade
: 一键更新从 Mac App Store 安装的应用程序; -
brew cleanup
: 用于清理 Homebrew 安装的软件包时产生的临时文件和缓存,以释放磁盘空间。
执行结果样例如下:
可以作为定时任务,周期性执行,以保持 Mac 上软件为最新版本。
我的部分 dotfiles 托管于 GitHub 仓库 synthpop123/dotfiles,仅用于备份用途。