
如果你最近在搜索框里敲过superpowers很可能会看到某个同名开源项目似乎安装一下就能拥有万物。但我要说的是另外一种superpowers它不是单一软件而是我把一堆顺手的小工具按自己的日常习惯组合起来最终形成的一套个人效率装备。也正是因为大家到处问怎么才能安装 superpowers这套东西才逐渐被我打磨成现在这样——终端里一个模糊搜索直接跳到历史目录浏览器里手不离键盘就能切页发链接到点自动备份、自动归档一天下来真正需要手动操作的重复劳动少得可怜。这篇文章不是给你贴一张工具清单就完事我会把安装思路、方案选型的理由、能直接抄走的脚本、以及我踩过的一些坑全部放在一起讲清楚。无论你是刚入行的开发者还是每天要跟大量文件打交道的运营或者文档工作者只要愿意花一个下午照着做都能把这套东西变成自己真正用得上的效率工具。而且我话先说在前面这套superpowers不是装完就变强而是要配合你自己的使用习惯慢慢养。养好了它是真能节省大量时间的。1. 我的superpowers到底是什么东西1.1 为什么我叫它 superpowers单看任何一个工具它可能都不起眼。fzf只是一个模糊搜索器zoxide只是一个目录跳转器Vimium 也只是一组浏览器快捷键。但把这些东西按工作流串起来以后效果就完全不一样了就像一堆零件摆着都是废铁组装成工作台之后你才真正感受到什么叫顺手。我之所以把它们统称为superpowers是因为这些工具组合出来的是操作能力的感觉你想到一个目录不用敲路径输入一个模糊关键词就能到你想找以前写过的某段代码不用翻文件夹一条命令几秒钟就定位你每天重复的文件整理、备份动作直接交给脚本定时执行。看起来每一项都不算什么黑科技但叠加之后整个人在做事的节奏上会从忙着找、忙着翻、忙着检查变成想起来、执行、完成。这种体验用超能力来形容一点都不过分。这套东西的核心其实不是某个软件的安装而是一套习惯的建立。我在给朋友推荐时反复强调一个观点superpowers不是从网上下载来的而是你自己把顺手惯用操作沉淀成的一整套流程。换句话说它既包含你能见到的那层工具也包含你看不到的配置和脚本。1.2 这套东西到底适合谁先说结论任何觉得自己每天在电脑前重复劳动太多的人都适合往下看。我自己是写代码的但里面绝大多数能力也可以给非程序员用。例如做运营的朋友经常要从几十个文件里找出包含某些关键词的内容、要把下载目录堆了一周的各种图片和文档归档这些用命令行工具加一个小脚本就能处理完不需要会写复杂的代码。但我也要泼一盆冷水如果你完全不想碰命令行看到终端窗口就头疼那这套superpowers可能并不适合你。不是说它学不会而是它带来的收益会被不想学这件事抵消掉。相比之下那些图形化的效率工具比如一些自动化 App可能更匹配你的习惯。最怕的是什么呢就是看到别人演示很酷自己一股脑把所有工具装上结果一个都不顺手最后全变成桌面上吃灰的图标。所以我建议你先问自己一个问题平时使用电脑最频繁、最烦人的三件事是什么想清楚了再往下搭。2. 方案选型别按工具排行榜来装机2.1 全家桶方案被我放弃的三个理由最早我也想省事直接找那种一个软件给你几十种增强能力的全家桶方案。用了一阵子以后我彻底放弃了原因有三个。第一个是太重。很多全家桶 App 装了以后内存占用和启动时间都明显上升但我日常高频用到的功能往往就三五个。为了其中三五个功能背上一个庞然大物实在不划算。第二个是更新太慢全家桶里每个模块都跟着主版本走某个小工具出了新特性你得等全家桶整体更新才能用上如果是订阅制商业产品还得看厂家心情。第三个最关键不好组合。效率工具这东西是很私人化的。我觉得有用的快捷键我的搭档可能觉得别扭我想加的一个自动化动作全家桶里不一定支持。但组合式工具链就不一样每个工具只做自己那一件事做得快、做得专而且可以随时替换。今天觉得 A 工具不顺眼了把它卸掉换 B 工具其他配置完全不受影响。所以最后我给自己定了一条原则组合式工具链宁缺毋滥。每引入一个新工具必须先想清楚它补上了我工作流里的哪一个环节而不是因为它榜上有名就装。这也是为什么这套方案并不是最酷炫的但用起来却非常稳。2.2 按工作流选型我的核心清单与其按工具热度来选我更建议按自己的高频操作来倒推。下面这张表是我当时整理的日常高频操作、对应痛点和最终采用的方案你可以对照自己的工作习惯进行调整高频操作痛点我的方案在终端里反复切换目录cd 加一长串路径手累且慢zoxide记住目录模糊跳转找以前写过的一段代码肉眼翻目录、grep 太慢ripgrep快速全文搜索查看配置文件或日志cat 输出一大片重点看不清bat语法高亮加行号翻看终端历史命令上下箭头一条条找fzf模糊搜索历史记录浏览器操作全靠鼠标点页面跳转、切标签太打断思路Vimium 键盘操作窗口堆叠、频繁拖动手动分屏太费时窗口管理工具一键布局整理下载目录、备份文件每周手动移动/复制shell 脚本加定时任务这个清单里最有意思的一点是没有任何一个工具是被我为了用而用的。比如bat它本质就是cat换了一层皮但有了语法高亮和行号之后日常查看配置文件的效率提升非常明显连带着很多原本要用编辑器打开的小文件现在的处理方式都是终端里直接看一眼。这就是按流程选型和按榜单选型的区别前者装一个用一个后者装十个用仨。3. 终端超能力先把手边的命令行环境武装起来3.1 安装一套基础装备zsh、fzf、zoxide、bat、eza、ripgrep既然要搭superpowers我建议从终端开始。终端是所有能力的底座装好一套舒服的环境后面加东西都顺。不同系统下安装方式略有区别我以 macOS 和常见的 Debian/Ubuntu 为例。macOS 上如果你还没装包管理器 Homebrew官方文档安装完成后执行# 安装核心工具 brew install zsh fzf zoxide bat eza ripgrep # 如果系统自带的 zsh 版本偏旧可以手动切到 brew 安装的新版本 chsh -s /usr/bin/zshLinux 下Debian/Ubuntu 用户可以直接用系统包管理器装一部分# 视发行版仓库情况包名可能略有差异 sudo apt install zsh fzf ripgrep但zoxide、bat、eza这几个在部分老版本发行版仓库里可能没有或者包名不一致例如bat的二进制在某些系统里叫batcat。遇到这种情况别着急一个思路是装好以后立刻在终端里敲一下命令名看提示再调整不要照着教程死搬。装完之后需要把它们真正接进 zsh 里。我在~/.zshrc里加了这样一段配置# 让 fzf 拥有更舒服的交互界面 export FZF_DEFAULT_OPTS--height 40% --border --inline-info # 加载 fzf 的快捷键绑定 if command -v fzf /dev/null 21; then eval $(fzf --zsh) fi # 初始化 zoxide if command -v zoxide /dev/null 21; then eval $(zoxide init zsh) fi # 常用别名 alias lseza --icons alias catbat alias rgrg --smart-case这里有个很容易踩的细节fzf的初始化方式在不同版本里不太一样老版本用eval $(fzf --zsh)更早的版本可能要写source (fzf --zsh)。装好后可以先跑一下看你的版本接受哪种写法。这套环境配置好以后你再用终端感觉会明显不一样ls直接带文件类型图标cat看文件变成彩色高亮方向键上翻历史时可以直接模糊搜索敲z加一个近似名字就能跳到之前去过的目录。3.2 让环境和配置替你记住按键习惯工具装好之后接下来是手感的问题。我再强调一遍不要试图一次把所有快捷键都背下来那样只会给自己增加负担。我的做法是每个工具只记住一两个最常用的用法用熟了再扩展。zoxide初期使用有一个重点它记录的是你cd访问过的目录第一次去某个目录还是需要老老实实cd一遍。比如某个项目路径特别深第一次进去的时候你正常cd之后想再去只要敲z 项目关键词就能直达。实测下来哪怕目录名记不全只记得中间某个片段它也能准确匹配。这种感觉很像给文件夹做了一套智能快捷方式。另外我给常用的 Git 操作也配了更短的别名和格式化日志这也是很多老手会做的事git config --global alias.s status git config --global alias.lg log --oneline --graph --all --decorate配完之后git s直接看状态git lg直接看清爽的分支关系图。这些配置看起来不起眼但一旦手记住了效率提升是长期的。我的经验是每次在终端里连续敲了三次以上的长命令就停下来想想是不是该给它起个别名或者写个小函数这个习惯比多装十个工具都有用。3.3 新机器还原用一份安装脚本快速恢复环境折腾环境的都知道最怕的就是换电脑。之前我每次换新机器光是把终端工具重新装一遍、把.zshrc里复制过来再修修改改就要折腾不少时间。后来我干脆把这些安装步骤写成一个脚本做到半自动恢复环境。下面是一份 macOS 环境的示例思路完全可以直接搬#!/usr/bin/env bash set -euo pipefail # 一键恢复终端装备macOS 示例 brew update brew install zsh fzf zoxide bat eza ripgrep # 将我的 zsh 配置软链到 home 目录 ln -sf $HOME/.dotfiles/zshrc $HOME/.zshrc # 确保默认 shell 是 zsh chsh -s /usr/bin/zsh echo 终端环境已恢复请重新打开终端生效。这里面有一个细节非常重要脚本开头的set -euo pipefail是很多新手不会注意的它的作用是脚本中途出错就立刻停止避免带着错误一路跑下去造成更严重的后果。我自己吃过亏所以现在写的所有脚本开头都会加上这句。另外我从不在网上盲目复制别人的安装脚本来跑。谁给你的脚本都要先打开读一遍确认它干了什么再执行。这个习惯能让你避开 90% 的坑。4. 浏览器和桌面上的轻超能力4.1 键盘操控浏览器效率提升不只一点点终端搞定之后下一步是浏览器。很多人以为浏览器效率工具要装很复杂的东西其实最简单也最常用的是一个叫 Vimium 的扩展它能让你用键盘完成绝大部分页面操作。我现在已经形成了这样的肌肉记忆j和k上下滚动f调出页面上的链接标记敲对应字母直接打开x关闭当前标签页X恢复刚关闭的标签页yy复制当前地址o打开历史搜索。刚开始用的时候有点反人类因为你会下意识找鼠标但用上一两天之后你会发现在键盘上操作浏览器比来回伸手摸鼠标顺畅太多。如果你不想用这类扩展也至少要养成用小键盘的快捷键的习惯比如CtrlL聚焦地址栏、CtrlW关页、CtrlTab切页。哪怕是这几个最基本的快捷键用熟了都能省下很多碎时间。我个人的建议是别一口气把所有 Vimium 快捷键背全先记住f、x、X、yy这四个就能覆盖日常 70% 的鼠标需求了。4.2 窗口管理和启动器把桌面变成一张工作台桌面应用多了以后窗口管理是另一个大痛点。我经常要一边看文档一边写代码以前靠鼠标来回拖动窗口不仅慢而且很难精确地对齐。现在我用的是窗口管理工具macOS 上推荐 RectangleWindows 上推荐微软官方出品的 PowerToys 里的 FancyZones 功能。它们的共同点是都可以让你用快捷键把窗口快速摆到屏幕的左半、右半、四分之一等位置甚至自定义一套适合自己工作的布局。我现在的常见姿势就是编辑器占左 2/3文档和浏览器占右 1/3一键布局不用回头再调。很多人会忽略启动器但我想说启动器才是桌面上最值得装的一个小工具。macOS 上我常用 RaycastWindows 上可以用 PowerToys Run。这类工具表面上是快速启动应用实际上它的能力远超于此支持计算器、快速查找文件、管理剪贴板历史。尤其是剪贴板历史简直是隐藏神器。以前写材料的时候要反复复制粘贴不同的内容经常复制一个就把上一个冲掉了现在调用历史记录随时翻出来省了很多重复劳动。4.3 小心全自动增强脚本的坑浏览器里还有一类增强手段叫用户脚本。它能挂一些自动动作比如自动展开某些文章、给页面加一个方便按钮、过滤干扰信息。这听起来很美好但我必须给所有想装这类东西的人提个醒脚本能做什么完全取决于脚本作者写了什么。一个看起来无害的页面增强脚本完全可能在背后收集你打开的网页内容甚至悄悄把数据传到第三方服务。所以我给自己定了三条规矩只从公开、知名、可审查的脚本站安装安装前先把脚本源码翻一遍看不懂的代码一律不装只给脚本设置最小的运行范围不要让它在所有网站上运行。这三条规矩看着简单但能帮你避开目前网上流行的大量风险用户脚本。效率工具有一个底线它得是你能掌控的。如果你完全不知道一个工具在干什么那哪怕它再方便我也不建议用。5. 自动化工作流实战让脚本替我干活5.1 自动整理下载目录的脚本说到脚本自动化很多人觉得要学一门语言才能做。其实用最朴素的 shell 脚本就能解决一大批日常问题。我的下载目录以前经常堆成山文件来源五花八门一周不整理就乱得让人不想打开。后来我写了一个整理脚本逻辑很简单按后缀名把文件分门别类移进对应文件夹。#!/usr/bin/env bash set -uo pipefail DIR$HOME/Downloads for file in $DIR/*; do [ -e $file ] || continue base$(basename $file) target case ${base,,} in *.png|*.jpg|*.jpeg|*.gif|*.webp) target$DIR/images ;; *.pdf|*.doc|*.docx|*.xls|*.xlsx|*.ppt|*.pptx) target$DIR/documents ;; *.zip|*.rar|*.7z|*.tar|*.gz|*.bz2) target$DIR/archives ;; *.mp4|*.mkv|*.avi|*.mov) target$DIR/videos ;; *.mp3|*.wav|*.flac) target$DIR/audio ;; *) target$DIR/others ;; esac mkdir -p $target mv $file $target echo moved: $base - ${target##*/} done有几个细节值得注意。第一for file in $DIR/*在目录为空的时候$DIR/*这个字符串本身也会被当作一个文件传进去所以必须加一句[ -e $file ] || continue来跳过无效项这条是我踩过坑之后才补上的。第二第一次跑这个脚本时别直接执行mv建议先把mv临时改成echo mv看一遍输出是不是符合预期确认无误再真正运行。第三脚本要加执行权限才能直接用chmod x organize.sh ./organize.sh5.2 保留最近7份的定时备份文件整理之后备份是另一件值得自动化的事。我自己对备份的要求很简单每天自动打一个包但只保留最近 7 份既不会占太多空间也能应对好几天前想找回某个旧版本文件的需求。脚本长这样#!/usr/bin/env bash set -euo pipefail SRC( $HOME/Documents/notes $HOME/.config/important_app ) BACKUP_ROOT$HOME/Backups KEEP7 STAMP$(date %Y%m%d_%H%M%S) DEST$BACKUP_ROOT/backup_$STAMP.tar.gz mkdir -p $BACKUP_ROOT tar czf $DEST ${SRC[]} cd $BACKUP_ROOT || exit 1 ls -1t backup_*.tar.gz 2/dev/null | tail -n $((KEEP 1)) | xargs -I{} rm -- {} echo backup done: $DEST这段脚本会按时间戳生成文件名然后用一行ls -1t把旧文件按时间倒序排好再从中挑出超过 7 份的旧备份删掉。这里我想特别说明一个使用习惯保留 7 份这个数不是死的你可以根据自己磁盘空间和工作内容调到 14 或 30 份关键是保留策略要提前想清楚不要攒一堆备份文件占满磁盘才去处理。定时执行我用的是系统的crontab在终端里敲crontab -e加一行0 18 * * * /home/你的用户名/bin/backup.sh /home/你的用户名/backup.log 21这行的意思是每天晚上 18:00 执行一次备份并把执行日志写到backup.log里。日志这条非常重要我后面专门还会讲没有日志的定时任务就像一个不知道到底跑没跑的定时炸弹。5.3 提交前检查给Git装一道小门禁最后一个自动化案例是给 Git 仓库加一个提交前门禁防止自己把调试残留、格式问题直接推到远程。Git 内置了一套钩子机制你只要在项目里的.git/hooks/pre-commit放一个可执行脚本它就会在每次git commit之前自动执行如果脚本返回失败提交就会被中断。我平时用的版本很简单#!/usr/bin/env bash set -euo pipefail # 检查是否有空白符错误 if git diff --cached --check | grep .; then echo 存在空白符错误请先修复。 exit 1 fi # 检查新增代码里是否出现调试残留 if git diff --cached | grep -E ^\ | grep -E FIXME|DEBUG; then echo 新增代码包含 FIXME/DEBUG 标记请确认后再提交。 exit 1 fi exit 0然后执行chmod x .git/hooks/pre-commit让它生效。这里同样有一个经验之谈门禁判定不要一开始就设得太苛刻。比如你把 TODO 也列入禁止名单很快你会发现仓库里到处都是 TODO提交一天到晚被卡最后你只能把它注释掉。先只拦明显的格式问题和 FIXME 这类调试残留让规则保持温和才能真正坚持下去。6. 常见问题与排查技巧实录6.1 高频率问题的速查与对策搭建这套superpowers的过程中你大概率会遇到下面几个问题。我按症状 → 原因 → 解决的方式整理成了一张速查表实测非常管用症状常见原因排查与解决新装好的工具命令找不到没有重启终端或 PATH 未加载先which 工具名看路径再source ~/.zshrc或重新打开终端按 CtrlR 没有弹出 fzf 搜索框当前 shell 还是 bash或没有加载 fzf 绑定确认默认 shell 是 zsh检查初始化那几行配置是否已经执行终端里图标和特殊字符显示成乱码当前字体不支持图标安装一个 Nerd Font 并设置为终端字体运行脚本提示 Permission denied脚本没有可执行权限执行chmod x 脚本名cron 定时任务一直没有执行脚本路径是相对路径或环境变量缺失在 crontab 中写绝对路径脚本内部也使用绝对路径浏览器用户脚本没有生效页面匹配范围不对或者权限没开查看脚本配置里的匹配站点确认当前页面在范围内装了工具但始终觉得用不上不是工具的问题是工作流没匹配回到第 2 章先记录一周自己的高频操作再决定去留这张表我建议打印出来或者保存成笔记等真正踩到的时候再查比一口气背下来效果好得多。里面每一个问题我都自己遇到过所以写出来的排查顺序一般都直接命中要害。6.2 我踩过最深的几个坑如果只挑几条真正的血泪教训我会选这几个。第一个坑是盲目执行别人发来的一键安装脚本。有一次我在网上看到一个非常炫酷的终端配置项目对方打包了一个setup.sh我连内容都没看就直接跑结果它擅自改了我的 PATH导致之后很多命令都找不到。从那以后我立下规矩凡是从网上来的安装脚本先head -50看一眼再决定跑不跑。这个习惯帮我躲掉了后面至少两三次麻烦。第二个坑是一口气配了太多快捷键。最开始我把 fzf、Vimium、窗口管理工具的所有快捷键全部配完结果就是记不住操作反而变慢了。后来我改成每个工具只保留最核心的三四个快捷键真正用熟了再慢慢往里加。效率工具的本质是省心如果你为了记住一堆快捷键搞得心很累那就本末倒置了。现在我更倾向于把多余键位都删掉让配置保持精简。第三个坑是定时任务不写日志。我之前有一个备份脚本在 cron 里跑了很久我一直以为它在正常干活。直到某一天我想恢复一个旧文件才发现这个任务早在改环境变量之后就已经悄悄失败了。原因很简单脚本里引用了不存在的目录但因为没写日志我完全不知道。所以我后来给所有 cron 任务都追加了 log 21并且养成了定期瞄一眼日志的习惯。这个做法救过我很多次。第四个坑是文件整理脚本第一次直接执行了mv把一些文件名大小写不同的文件移错了位置。虽然最终没有造成无法挽回的损失但这件事让我明白凡是批量操作的脚本第一次执行都要先跑试运行把移动或者删除的动作打印出来看一眼。不要觉得多这一步很麻烦很多时候这一步就是你和事故之间的距离。我个人在实际操作中的体会是一套真正顺手的superpowers不是某一个晚上装出来的而是靠一次次失败、一次次调整慢慢养出来的。它并不神秘也不需要你会写多复杂的代码只要你愿意花一点时间把那些每天都在做、又很容易被忽略的重复动作梳理一遍然后找到合适的工具或者脚本去接手它们就会慢慢变成你的超能力。最后再分享一个小技巧定期卸载那些你其实没在用的效率工具半年清一次你留下的东西才是真正属于你的 superpowers。