写在前面#
今年有一次,同事突然问我,可有什么好工具推荐。我一时竟怔住,不知如何作答。倒也不是没有,平日里确实积累了不少趁手的工具,只是仓促间让我说出来,倒也为难。
只因每种工具有其特定的适用场景,而每个人偏好亦有不同。正所谓:我之蜜糖,彼之砒霜。
事后想想,其实可以写一篇文章,把我用的工具都介绍一下。虽然数量不少,也不一定都适合每个人,但肯定有人能从中找到适合自己的。所以,我决定参考别人的方式,写一篇我自己的《从 A 到 Z》,把我 2024 年日常工作和生活中使用的各种工具,按照字母顺序一一列出来,和大家分享。
以下是一些工具的分类,包括 macOS、iOS、安卓 TV 等系统软件、各类网站、浏览器扩展以及命令行工具和 npm 包。为了方便查阅,我将首先按类型分类,再在各类中按字母顺序排列。
macOS 软件#
APTV#
吃饭时追电视的好帮手!支持苹果全家桶,虽不自带直播源,但配合自定义源简直绝了。
我个人维护了一套包含卫视频道、港台频道和网络直播的源,如有需要可邮件联系。
Applite#
免费开源的 macOS 工具,专为 Homebrew 第三方应用的安装和管理设计,操作更直观,省时省力。
Bob#
Bob 是一款强大的翻译和 OCR 工具,通过选择文本并按下快捷键 (Option + D) 即可快速翻译或进行 OCR 识别,配合 PopClip 甚至可以实现无键盘操作。更重要的是,Bob 支持自定义 AI 接口和提示语,实现高度个性化的翻译、润色、解释等功能。以下是我常用的几个提示语示例:
1. 翻译(使用 Pro 用户专属的「智谱翻译官」)#
点我展开提示语
出处:https://x.com/dotey/status/1727091267870367880
角色设定
你是一位精通 $query.detectToLang、$query.detectFromLang 的专业翻译,尤其擅长将专业学术论文翻译成浅显易懂的科普文章。请你帮我将以下 $query.detectFromLang 段落翻译成 $query.detectToLang,风格与 $query.detectToLang 科普读物相似。
规则:
- 翻译时要准确传达原文的事实和背景。
- 即使上意译也要保留原始段落格式,以及保留术语,例如 FLAC,JPEG 等。保留公司缩写,例如 Microsoft, Amazon, OpenAI 等。
- 人名不翻译
- 同时要保留引用的论文,例如 [20] 这样的引用。
- 对于 Figure 和 Table,翻译的同时保留原有格式,例如:“Figure 1: ”翻译为“图 1: ”,“Table 1: ”翻译为:“表 1: ”。
- 全角括号换成半角括号,并在左括号前面加半角空格,右括号后面加半角空格。
- 输入格式为 Markdown 格式,输出格式也必须保留原始 Markdown 格式
- 在翻译专业术语时,第一次出现时要在括号里面写上英文原文,例如:“生成式 AI (Generative AI)”,之后就能只写中文了。
- 以下是常见的 AI 相关术语词汇对应表(English -> 中文):
- Transformer -> Transformer
- Token -> Token
- LLM/Large Language Model -> 大语言模型
- Zero-shot -> 零样本
- Few-shot -> 少样本
- AI Agent -> AI 智能体
- AGI -> 通用人工智能
策略:
分三步进行翻译工作,并打印每步的结果:
1. 根据内容直译,保持原有格式,不要遗漏任何信息
2. 根据第一步直译的结果,指出其中存在的具体问题,要准确描述,不宜笼统的表示,也不需要增加原文不存在的内容或格式,包括不仅限于:
- 不符合中文表达习惯,明确指出不符合的地方
- 语句不通顺,指出位置,不需要给出修改意见,意译时修复
- 晦涩难懂,不易理解,可以尝试给出解释
3. 根据第一步直译的结果和第二步指出的问题,重新进行意译,保证内容的原意的基础上,使其更易于理解,更符合中文的表达习惯,同时保持原有的格式不变
返回格式如下,"{xxx}"表示占位符:
意译
{意译结果}
————
直译
{直译结果}
————
问题
{直译的具体问题列表}
用户指令:
现在请按照上面的要求从第一行开始翻译以下内容为 $query.detectToLang:
$query.text
- 润色(使用 bob-plugin-openai-polisher)
点我展开提示语
请润色下面的文章,使其更加简洁,同时确保所有原因和理由依然明确。
文章的语气应保持轻松随意,而不会过于正式。
- 通俗解释(使用 bob-plugin-openai-translator)
点我展开提示语
你是一个严谨的学者,但同时也希望用轻松有趣的方式分享知识。请将以下复杂文本用通俗易懂的口语解释出来。解释时可以适度加入一些幽默元素,例如巧妙的比喻、有趣的类比、轻松的语气等,但幽默的程度要适中,不要喧宾夺主,更不能影响对文本的准确理解。
Beyond Compare#
虽然价格肉疼 ($49.9),但用过之后真香!Beyond Compare 是一款强大的文件和文件夹对比工具,支持各种文件类型,包括 PDF。对比目录下的文件差异效果极好,还能解决代码冲突。
最近出了 v5,但 v4 已经足够用了,不必升级。
Bitwarden#
之前从来不用密码管理器,但入职这家公司后被强制要求,才发现它的好用之处。
我选了 Bitwarden,起初打算自建服务,但官方版本已经完全够用。
如果你还没用过密码管理器,强烈推荐开始用,安全又方便。
Charles#
macOS 抓包必备神器,用过的都懂,不用多说。
ClashX Pro#
和 Charles 类似的工具,如果不是用这个,应该也会用类似的东西。
Command X#
macOS 原生不支持 Command + X 文件剪切,但装了它就可以,补齐功能缺失。
Cursor#
VSCode 改造而来的 AI 代码编辑器,初体验还不错,但免费期过后价格略贵。
后来接入 deepseek API 用了一段时间,最近转投 Windsurf,体验更棒。
Dash#
查文档利器,配合 Raycast 使用效率爆表。
DevUtils#
开发者工具合集,小而全,配合 Raycast 更好用。
Fileball#
现代化的多媒体播放器,我主要当 Emby 客户端用,跨设备看 Emby 影视非常方便。
FixTim#
macOS 故障救星!Wi-Fi 连不上?iCloud 同步出错?别急着重启,试试它能不能修好。
Follow#
刷屏社区的 RSS 阅读器,支持电脑端和网页端,体验极佳。
这里安利一下我的梗图 List:梗图列表,有兴趣可以订阅!
Function Key Pro#
Fn 键增强工具,让 F1~F12 支持短按、长按和 Fn + 短按三种操作,功能自定义随心所欲。
比如双手腾不出来时,长按 F11 就能调低音量,非常实用。
Hidden Bar#
开源的状态栏图标隐藏工具,让状态栏更简洁。
IINA#
国产开源播放器,体验很棒,但我用得不多。
Itsycal#
菜单栏日历工具,能直接查看日程安排,操作简单,颜值在线。
kitty#
之前一直用 iTerm2 作为主力终端,但今年用着总觉得有点不顺手,于是试着折腾了几款新的终端工具。最后选中了 kitty,简单介绍下我的配置和体验。
快速呼出终端:
上学时,我用 Linux Mint 作为主力系统,特别喜欢一个叫 Tilda 的终端工具,它有个超酷的功能:不管你当前在哪个应用窗口,按下 F11 就能瞬间呼出终端窗口。后来切换到 macOS 后,这个习惯一直保留着,只不过工具换成了 iTerm2,现在是 kitty。
在 kitty 里,我用 Raycast 配合快捷键来呼出终端,按下 Option + F11,窗口立刻出现,而且占满屏幕的上半部分。虽然 kitty 不原生支持快捷键显示窗口,但这个搭配已经非常顺手了。
窗口尺寸配置:
initial_window_width 54c
initial_window_height 10c
快捷键适配:
为了保持之前用 iTerm2 的操作习惯,我也在 kitty 里折腾出了一些相似的快捷键。比如,按下 cmd + d 就能快速分割一个 panel。用起来几乎无缝衔接,效率直接拉满。
map cmd+1 goto_tab 1
map cmd+2 goto_tab 2
map cmd+3 goto_tab 3
map cmd+4 goto_tab 4
map cmd+5 goto_tab 5
map cmd+6 goto_tab 6
map cmd+7 goto_tab 7
map cmd+8 goto_tab 8
map cmd+9 goto_tab 9
map cmd+0 goto_tab 10
map cmd+enter toggle_fullscreen
enabled_layouts splits,stack
map cmd+d launch --cwd=current --location=vsplit
map cmd+shift+d launch --cwd=current --location=hsplit
map cmd+w close_window
map cmd+t new_tab_with_cwd
搜索功能:
kitty 不支持用 cmd + f 快捷键来搜索输出的内容。因此从网上找了两种方法实现搜索功能。
# fzf
map ctrl+f launch --type=overlay --stdin-source=@screen_scrollback /opt/homebrew/bin/fzf --no-sort --no-mouse --exact -i
# https://github.com/trygveaa/kitty-kitten-search
map cmd+f launch --allow-remote-control kitty +kitten kitty/kitty_search/search.py @active-kitty-window-id
KeyboardHolder#
一款根据不同应用、不同网站、不同场景自动切换到对应的输入法的辅助工具。
Latest#
可以帮你快速检查系统中有哪些软件需要更新。
LICEcap#
开源的 GIF 屏幕录制小工具,用它就够了。
LocalSend#
免费、开源、跨平台的文件分享工具。
Logseq#
近几年,「第二大脑」这个概念非常火爆,简单来说,就是将要记住的信息存储在笔记工具里,把大脑留给思考和创造。
支持反向链接(Backlink)的笔记软件是最适合用作第二大脑的工具,你只需输入关键词,就能轻松回溯相关内容,拓展思维。
Logseq 就是这种类型的优秀代表。虽然它并不是所有人心目中的“最佳选择”,但它高度适配「输入 → 整理 → 回顾」的流程。
提醒:别陷入折腾软件的死循环,选一个顺手的工具,专注输入和输出才是正道!
Marta#
macOS 自带的 Finder(访达)一向饱受诟病,功能简单又鸡肋。这时,Marta 就能解救你!它支持多栏操作,非常方便进行文件拷贝等操作。如果你想试试其他选择,QSpace 也是不错的替代方案。
Microsoft Edge Dev#
这几年,我的主力浏览器一直是 Microsoft Edge,尤其是 Dev 版本。
尝试过其他浏览器(Arc)后,我还是回到了 Edge,毕竟熟悉的工具才是最顺手的。
Notion#
虽然现在我的笔记已经迁移到 Logseq,但 Notion 强大的数据库功能依旧让我无法割舍。
- 收藏管理:配合浏览器扩展 Save to Notion,轻松将文章和网站收集整理。
- 数据存储:复杂的信息和资源管理,Notion 的数据库能力仍然无可替代。
OrbStack#
如果你还在用 Docker Desktop 或 Colima,那么恭喜你发现了更好的选择:OrbStack!
- 轻量快速:启动速度快,资源占用少。
- 操作顺滑:整体体验比 Docker Desktop 流畅许多,绝对让你用过之后后悔没早一点发现它。
Parallels Desktop#
macOS 上最好用的虚拟机软件,没有之一。
由于我的电脑只有可怜的 512GB,因此我选择将虚拟的 Windows 11 安装在移动硬盘上。
PicGo#
一个图床上传工具。
Poe#
这个平台集成了多种 AI 模型,价格相比官方渠道便宜不少。我自己没有订阅,只是偶尔用用每天免费的额度,感觉已经够用了。
RapidAPI#
前身是 Paw,当初限免时下载的,现在一直在用。相比 Postman,它用起来顺手多了。
Raycast#
相信不用我介绍了,但如果你真心不知道这款软件,那么我强烈推荐你使用。
安装 Raycast 后,你可以轻松告别一堆单独的工具,比如:
1. Alfred(更别提 Raycast 免费!)
2. 剪切板管理工具
3. Snippets 代码片段管理工具
4. 软件卸载工具
5. 窗口管理工具
6. 便签工具
Raycast 自带的 Store 拥有丰富的扩展,你可以根据需要找到最适合自己的工具。比如不少主流软件都提供了对应的 Raycast 插件。
借助 Quicklink 功能,你可以自定义命令,比如输入 v2 回车,直接打开 V2EX 摸鱼,效率拉满。
这里我推荐一些常用的扩展:
- Base64:快速解析/编码文本
- ChatGPT:一键召唤 GPT,随问随答
- Google Search:直接启动 Google 快速搜索
- Kill Process:快速查找并 kill 进程
- Microsoft Edge:搜索收藏夹与历史记录
- Search Commands:搜索并查看 Linux 命令
- Search HTTP Status Codes:查阅 HTTP 状态码的含义
- Search npm Packages:快速查找 npm 包信息
- Transform:文本/代码转换神器,例如 CSS 转 JavaScript Object
- Visual Studio Code:直接用 VSCode 打开项目文件
RIME#
RIME(中文名“鼠须管”)是一款开源输入法,堪称「神级输入法」。如果你和我一样,想摆脱互联网公司输入法的捆绑,追求更高自由度的自定义配置,那么 RIME 是绝对值得一试的选择。
推荐配置:
为什么选择 RIME?
1. 高度自定义:支持任意配置方案,可以根据个人输入习惯深度定制。
2. 纯净无广告:没有后台上传数据的烦恼,输入体验干净纯粹。
3. 多平台支持:macOS(鼠须管)、Windows(小狼毫)、Linux(中州韵)都能用。
Remote for Mac#
可以在 iOS 上远程操作 macOS 的软件,有时候用它挺方便。
Scroll Reverser#
让鼠标滚动方向变得更习惯,尤其是从 Windows 转到 macOS 的用户。
Skim#
轻量级 PDF 阅读器,支持标注和笔记,非常适合看书或做研究。
Slack#
团队协作的聊天工具,个人感觉比国内同类软件强太多。
Snipaste#
从 Windows 开始就用的截图工具,简单快捷。
SnippetsLab#
代码片段管理器,用于记录解决方案和命令行代码,配合 Raycast 非常高效。
Sourcetree#
虽然更习惯用命令行管理 Git,但遇到复杂操作时,Sourcetree 简直是救星。
Spotify#
用尼区车 42/年的价格听歌,值到飞起。
Tor Browser#
你懂的。
算了,可能还有人不太懂。简单来说,就是个“洋葱浏览器”,主要用来访问暗网。但别一听“暗网”就觉得都是些见不得光的东西,事实上,暗网里也有很多正常内容。比如之前 z-lib 网站被 FBI 封了,那段时间,只有通过暗网才能继续访问。所以,你懂了吧?
TinyPNG4Mac#
一款用于压缩 PNG 图片的工具。可能你不知道,它还有 macOS 客户端。优点是没有文件上传大小的限制,只要申请一个 API key,就能畅快使用,非常方便。
Tuxera Disk Manager#
解决 macOS 不支持 NTFS 格式的问题,可以随意读写 NTFS 硬盘。
Typora#
Markdown 编辑器,正式版收费,但用习惯了感觉值得。
Velja#
双浏览器策略神器,专为解决个人与工作环境混乱而生。你可以根据 URL、应用 或 快捷键 设置不同的默认浏览器,轻松实现账号和插件的彻底隔离。
浏览器里个人和工作账号分不清楚,一直是个让我头疼的问题,尤其是不同的密码管理器插件在同一浏览器中互相冲突,简直让人崩溃。后来我果断采用了双浏览器策略,分别处理工作和个人的账号与插件。
Velja 正是这类需求的完美解决方案:
1. 匹配特定 URL:比如打开公司内部网站,就自动跳转到工作浏览器。
2. 快捷键支持:用 Fn 键加点击,就能快速选择浏览器。
3. 按应用区分:在 Slack 或邮件客户端中点击链接,也能智能地选择对应浏览器。
4. 浏览器插件:选择另外一个浏览器打开当前网页。
简而言之,所有工作相关的内容都会被引导到指定的浏览器,从此告别账号混乱,工作和个人完美隔离。
Visual Studio Code#
无需介绍的代码编辑器。
Windows App#
macOS 远程连接 RDP 桌面的工具,远程办公必备。
Zen Browser#
今年朋友推荐了 Zen 浏览器,它流畅的运行速度和便捷的工作区功能尤其适合打开工作相关的网站。
因此它很自然地成为了我「双浏览器策略」中的选择之一。
iOS 软件#
Alook#
一块钱的 iOS 浏览器,却拥有强大的功能!无推送、无新闻、无广告,内置播放器还能悬浮播放网页视频,支持倍速和后台播放。强烈推荐!
Authenticator#
2FA 验证码管理器,保护你的账户安全。微软、谷歌、LastPass 等都有类似的 APP,我用的是 LastPass 的,功能都差不多,选择你喜欢的就好。
Bark#
让你可以把自定义消息推送到手机上的神器,M 系列 Mac 上也能用,玩起来很有意思。
彩云天气#
最强天气预报 APP,当年送终身 VIP,但后来加了个 SSVIP 和 AI 小助手。虽说改版了,但天气数据和推送还是很靠谱。
Cape#
用屏幕使用时间隐藏 APP,实用且隐秘。
锤子便签#
老罗的经典产品,2024 年依然香,操作流畅,用着舒服。
DAMA#
聊天打码必备,一键隐私保护,八爷的独立开发作品,简单又实用。
FIMO#
复古滤镜相机,随便一拍就是大片。但如果像我一样没审美,效果可能也就那样。
HTTP Catcher#
抓包工具,用来劫持请求、修改响应,研究技术或者调试时很好用。
Shortcuts#
iOS 的效率天花板,用来自动化各种操作,解锁后你会发现手机更强了。
谜底时钟#
充电时仪式感满满的时钟,设计感超棒,买了终身版没后悔。
nplayer#
最强播放器,局域网远程播放、全格式支持,无需转码,无广告,一步到位。
Open Scanner#
免费的文档扫描 APP,效果杠杠的,在 X 上被安利后就没换过。
Photo Cleaner#
清理大图片、相似照片的利器,清理空间的好帮手。
Photomator#
系统相册不够用?换它,替代效果一流,还支持 macOS。
Picsew#
长截图神器,效果不错,操作方便。
PiP#
让 Youtube 视频后台画中画播放(虽然 Alook 也能实现,但多一个选择总归好)。
Quantumult X#
比小火箭省电还强大,今年买的最值的一款 APP,完全改变了我的使用习惯。
Reeder#
看 RSS 的丝滑神器,手机端、电脑端都顶用,做 RSS 用户的福音。
什么时辰#
查看时辰和放小组件的 APP,传统文化爱好者的心头好。
什么值得买#
这个不用我多说了,剁手指南。
Stream#
又一个抓包工具,简单粗暴。
Termius#
功能全面的 SSH 客户端,远程管理必备。
Traffic Rider#
无聊时解压的摩托车游戏,开一把放松心情。
Tubecasts#
后台听 Youtube 的神器,支持倍速播放和定时关闭,睡觉前听视频专用。
VLLO#
视频剪辑工具,操作简单,轻量用户的好帮手。
伟途亦可思#
V2EX 的第三方客户端,摸鱼一绝。
小睡眠#
助眠神器,睡觉听点白噪音或者轻音乐,秒入梦乡。
熊猫吃短信#
超好用的短信过滤工具,熊猫 1 表现很稳,据说熊猫 2 改成订阅制后褒贬不一,所以我一直留在 1。
安卓 TV 软件#
BBLL#
第三方 bilibili 客户端,支持弹幕,界面清爽,个人感觉比官方版更适合 TV。
Emby#
Emby 客户端的破解版,用来看 emby 服的视频,流畅好用。
Simple Live TV#
专注看网络直播,涵盖各大网络平台的直播源,小巧实用。
Smartube#
无广告的第三方 YouTube 客户端,体验比官方版还丝滑。
tvbox#
必备的看剧神器,开源且可定制,各种魔改版本应有尽有。
推荐版本:takagen99,界面美观,使用舒适。
配置地址:http://www.饭太硬.top/tv/,配置完直接开爽。
天光云影#
看直播源的软件,支持自定义源,直播体验优秀,操作方便。
一起看 TV#
看剧专用,资源丰富、界面简洁,适合电视上轻松追剧。
网站#
以下是一些实用的网站,配合 Raycast 的 quicklink 使用可以大幅提升效率。
aistudio.google.com#
Google 的 AI Studio,探索和测试 AI 模型的平台,可以免费用最新的模型。
aktv.top#
提供稳定的港澳台直播源。
bilin.ai#
一个 AI 生成工具平台,用于图片、文本和代码生成。
chatgpt.com#
开了 ChatGPT Plus 后一直在用,生产力提升神器。
copilot.microsoft.com#
访问 Microsoft Copilot 的专属网站,体验 AI 助理的强大功能。
cs.github.com#
快速从 GitHub 仓库中搜索代码,非常方便。
gemini.google.com#
Google 的 AI Gemini 项目入口,专注于生成式 AI 的未来探索。
如果可以用 aistudio.google.com,就不需要这个了。
learning.google.com#
Google 的在线学习平台,涵盖多种技术和技能的课程。
notebooklm.google.com#
Google 推出的 AI 学习工具,用来整理和学习内容特别好用。
npm.runkit.com#
在线运行 npm 包的沙盒环境,用于测试和演示代码。
npmgraph.js.org#
用图表方式可视化 npm 包的依赖关系。
npmtrends.com#
比较多个 npm 包的下载趋势和受欢迎程度。
perplexity.ai#
一款结合搜索引擎和问答功能的 AI 工具。
pkg-graph.info#
另一个 npm 包依赖可视化工具,帮助理解包的依赖结构。
promptperfect.jina.ai#
AI 提示优化工具,生成和测试最佳的 AI 提示。
phind.com#
专注于开发者的搜索引擎,直接返回技术相关的搜索结果。
search.luxirty.com#
基于 Google 的搜索引擎,屏蔽内容农场,没有广告和跟踪,搜索体验清爽快速。
search.saveweb.org#
搜索互联网存档,找回那些已经被删掉的网页内容。
thinkany.ai#
AI 相关工具集合,可以探索不同场景下的 AI 应用。
v0.dev#
一个实验性开发工具平台。
x.ai#
grok AI 应用,现在面向所有用户免费开放。
浏览器扩展#
AutoScroll#
让 macOS 上也能用鼠标中键自动滚动网页,对 Windows 用户非常友好。
Bypass Paywalls Clean#
绕过各种网站的付费墙,轻松访问隐藏内容。
Console Importer#
在浏览器控制台一键 import npm 包,调试效率直线上升。
$i("jquery");
Don’t track me Google#
屏蔽 Google 的隐私追踪,保护你的数据安全。
JSON Viewer#
最强 JSON 查看器,格式化、折叠、查询一气呵成,开发者必备。
Kimi 浏览器助手#
总结文章的好帮手,而且完全免费。
OneTab#
一键保存所有标签页,整理工作或学习内容神器。
Save to Notion#
一键把网页内容保存到 Notion,信息管理更高效。
SimpleExtManager#
快速管理浏览器扩展,随用随开,不浪费资源。
SponsorBlock for YouTube#
跳过 YouTube 视频的赞助片段,观看体验直接升级。
Stream Recorder#
支持下载 HLS / m3u8 格式的直播视频,非常好用。
Velja#
想用另一个浏览器打开当前网页?一键搞定。
Video Speed Controller#
随意调节视频播放速度,倍速党福音。
Wayback Machine#
快速保存网页到互联网档案馆,还能查看过去的版本。
uBlacklist#
屏蔽 Google 搜索结果中的指定网站,专治乱七八糟的内容。
uBlock Origin#
高效移除广告和跟踪器,浏览器清爽到飞起。
v2ex plus#
优化 V2EX 的使用体验,增加各种实用小功能。
沉浸式翻译#
深度翻译工具,强烈建议 Linux 用户配合 DeeplX API key 使用。
猫抓#
网页上的媒体嗅探神器,各种音视频资源轻松抓取。
篡改猴#
油猴脚本管理工具,扩展浏览器功能的不二之选。
过滤广告 為 Youtube™#
纯粹为 YouTube 服务的广告屏蔽工具,专注且好用。
隐私獾#
屏蔽广告和追踪器,还能让你手动选择是否加载一些网页组件。
命令行工具#
我会在这里分享一些我常用的命令行工具和自己写的 alias,希望能提升你的终端使用效率。
ag#
更好的 grep。
brs#
配合 fzf 实现一键切换分支:
brs() {
gbr | fzf-tmux | awk '{print $1}' | sed 's|origin/||' | xargs -I {} git switch {}
}
btop#
更好的 top。
bat#
更好的 cat
bclm#
有个软件叫 AlDente,它可以帮你调整电池充电阈值。简单来说,当你的电池电量达到设定的数值后,软件会自动停止充电并开始使用电池供电。这样一来,你就不用手动插拔 MacBook 的充电器了。
这款软件是收费的,而 bclm 则是一个开源的命令行工具,可以达到和 AlDente 一样的效果。
使用它后,我的电池健康度一年才降了 5%!不过自从升级 Sequoia 后 macOS 不给写入 SMC 的权限了,所以 bclm 行不通了,现在使用 bclm_loop 代替。
bkp#
快速备份文件
bkp() {
cp -Rp "$1"{,.bak}
}
c#
clear 的别名,更快清除屏幕。
cpf#
我们都知道 pbcopy 可以复制输出的内容,比如 cat 1.txt | pbcopy
。但有时候我们想要复制文件本身,而不是文件内容。这种情况下,通常需要先运行 open .
命令打开当前目录,然后手动拷贝文件。其实可以用纯命令行的方式来操作:
cpf() {
osascript \
-e 'on run args' \
-e 'set the clipboard to POSIX file (first item of args)' \
-e end \
"$(pwd)/$@"
}
这样以后我们通过 cpf 1.txt
就能直接在微信等软件中粘贴并发送这个文件了。
difft#
理解语法的 diff 工具,可配合 git 或者 hg 使用,让 diff 更好看。
可查看 git 小节查看使用例子。
edge-tts#
顾名思义,一个使用 Microsoft Edge 文本转声音的工具,配合 Raycast script 可实现快速阅读一段文本,强烈推荐 xiaoxiao 人声。
fd#
更好的 find。
fonttools#
一个字体工具,用于生成字体子集或优化文件大小,从而达到瘦身效果,对于前端来说非常好用。
pyftsubset OPPOSans-H.ttf --text=$(cat 仅需要的文本.txt | rg -e '[\w\d]' -oN --no-filename|sort|uniq|tr -d '\n') --no-hinting
fuck#
暴躁老哥的命令行工具,当你输错命令的时候,fuck 一下可帮你纠正。
fs#
其实是 yazi 的别名,一个很好用的终端文件管理器。
fzf#
如果你喜欢命令行操作,那么一定要了解这个工具!它可以让你对所有输出进行模糊搜索和自定义操作。
分享一下我的默认设置:
# 默认选项
export FZF_DEFAULT_OPTS="--height 100% \
--layout reverse \
--prompt '∷ ' \
--pointer ▶ \
--marker ⇒"
# 这行配置开启 ag 查找隐藏文件 及忽略 .git 文件
export FZF_DEFAULT_COMMAND='ag --hidden --ignore .git --ignore .hg -l -g ""'
fzf 在 tmux 下有个很酷的功能,可以让 tab 补全选项列表通过弹出窗体展示,且窗体会更紧凑:
if [[ -n "$TMUX" ]]; then
zstyle ':fzf-tab:*' fzf-command ftb-tmux-popup
fi
此外,还可以使用 command **
+ tab 键的组合来快速预览根目录(例如在执行 cd **
时)或列出各个指令介绍(例如在执行 git **
时)。
_fzf_complete_git() {
_fzf_complete --bind "enter:become(echo {} | awk '{print \$1}')" -- "$@" < <(
git --help -a | grep -E '^\s+' | awk '{print $1 " -- " $2, $3, $4, $5}'
)
}
_fzf_comprun() {
local command=$1
shift
case "$command" in
tree) find . -type d | fzf --preview 'tree -C {} -I node_modules' "$@";;
cd) find . -type d | fzf --preview 'tree -C {} -I node_modules' "$@";;
*) fzf "$@" ;;
esac
}
你还可以在这个本文里看到很多我使用 fzf 配合其它工具的例子。
git#
应该没人不知道了,但你可能不知道,如果你使用的 zsh,那它提供了一系列的 git 的别名:Oh-My-Zsh Git,这里还有一些我与 fzf、difft 等工具配合使用的例子:
# 更好的 git diff
gd() {
GIT_EXTERNAL_DIFF=difft git diff
}
# 更好的 git show
gsh() {
GIT_PAGER_IN_USE=1 GIT_EXTERNAL_DIFF=difft git show "$1" --ext-diff | less
}
ggfzf() { fzf --no-sort --ansi --bind "enter:execute(echo {} | sed 's/\x1b\[[0-9;]*m//g' | cut -d' ' -f2 | xargs -I {} bash -c \"source ~/.bash_profile && gd {}\")"; }
# git 提交列表,按回车可快速查看提交信息
gglg() {
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit | ggfzf
}
h#
history | fzf
的别名。
hg#
与 git 差不多的版本控制工具,主要我司内部使用这个工具。
虽然我自己也有一套相关的 alias,但由于这个工具用户不多,分享的意义不大,就先不列出来了。
htop#
也是更好的 top。
ii#
查看当前系统的一些信息。
ii() {
echo -e "\n您已登录 ${RED}$HOST"
echo -e "\n附加信息:$NC "
uname -a
echo -e "\n${RED}Users logged on:$NC "
w -h
echo -e "\n${RED}Current date :$NC "
date
echo -e "\n${RED}Machine stats :$NC "
uptime
echo -e "\n${RED}Memory stats :$NC "
free
echo -e "\n${RED}Diskspace :$NC "
df -h
echo -e "\n${RED}Local IP Address :$NC"
myip
echo
}
jq#
对 json 文件进行操作、过滤等。
jnv#
交互式的 jq。
lsd#
更好的 ls。
ns#
快速打开一个临时目录,做任何实践性的操作。
ns() {
newdir=`date +%s`
fulldir=~/Temp/$newdir
mkdir -p $fulldir
cd $fulldir
}
nvm#
一开始我用的就是这个老牌的 Node.js 版本管理工具,但后来发现它让终端启动太慢,实在受不了,于是换成了 n。可惜在工作中又要求统一用 nvm,只好又换回去了。对于终端启动慢的问题,可以通过冷启动来解决。现在用下来还是能接受的。
# ~/.zshrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# install zsh-async if it’s not present
if [[ ! -a ~/.zsh-async ]]; then
git clone git@github.com:mafredri/zsh-async.git ~/.zsh-async
fi
source ~/.zsh-async/async.zsh
load_nvmrc() {
local nvmrc_path
nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version
nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
nvm use > /dev/null
fi
elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
nvm use default > /dev/null
fi
}
# async_loader
function async_loader() {
# nvm
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
load_nvmrc
}
# init worker
async_start_worker async_load_worker -n
async_register_callback async_load_worker async_loader
async_job async_load_worker sleep 0.1
# 改变目录时自动切换 Node.js 版本
add-zsh-hook chpwd load_nvmrc
mdcat#
更好地渲染 markdown 的 cat 命令,支持高亮 markdown 语法、代码块、图片等。
ppwd#
快速复制当前路径:alias ppwd=pwd | pbcopy
。
projclean#
项目依赖关系和构建工件清理工具,支持大部分项目。
对于前端来说,它可以帮你一键删除所有项目中的 node_modules 目录,从而释放硬盘空间。
cargo install projclean
# 谨慎操作!!!
projclean node_modules
r#
快速切换到当前仓库的根目录。
r() {
if is_git; then
cd "$(git rev-parse --show-toplevel)" || return
elif is_hg; then
cd "$(hg root)" || return
else
cd ~ || return
fi
}
rsync#
rsync 是 linux 系统下的数据镜像备份工具。使用快速增量备份工具。
s#
快速应用 .zshrc
等文件而无需重启终端,source ~/.zshrc
。
server#
快速打开一个 http 服务器:python3 -m http.server 8181
。
shellcheck#
顾名思义,检查 shell 脚本用的,类似于 eslint 之于 JavaScript。
tldr#
查询某个命令的使用示例。
tree#
输出当前树形目录结构。
trash#
代替 rm,不会直接删除,而是把文件或目录移动到回收站,让你有后悔药吃,可配合 Raycast 的 Empty Trash 指令快速清空回收站。
upp#
一键通过 vim 编写提交信息,并进行推送。
git add -A
temp_file=$(mktemp)
vim +startinsert "$temp_file"
commit_message=$(cat "$temp_file")
if [ -z "$commit_message" ]; then
echo "Commit message was empty. Aborting."
rm -f "$temp_file"
return
fi
echo -n "Commit message:"
echo " $commit_message"
echo -n "Do you want to push? (y/N): "
read confirm
git commit -m "$commit_message"
[ $? -eq 1 ] && exit 1
if [[ "$confirm" =~ ^[Yy]$ ]]; then
git push
fi
rm -f "$temp_file"
vo#
使用 fzf 模糊搜索文件并通过 vim 打开:
vo() {
selected_file=$(_fzf)
if [ $? -eq 0 ]; then
nvim "$selected_file"
fi
}
以此类推可以实现快速通过其它工具打开。
wx#
快速通过微信开发者工具当前项目:
wx() {
/Applications/wechatwebdevtools.app/Contents/MacOS/cli open --project "$(pwd)/$1"
}
yt-dlp#
youtube-dl 已死,这是它的代替方案。
z#
我以前一直用 z.lua,直到我发现了 zoxide。我觉得这是一个更好的快速跳转目录工具。
而且它还支持使用 zi
命令列出候选目录,然后你可以自己选择要跳转的目录。
zsh#
这几年我一直用 zsh,试过一段时间 fish,但发现不太习惯,而且不兼容我的 bash 脚本,所以还是回到了 zsh。目前我在用 p10k 主题,挺不错的!
插件主要是这些:
plugins=(git mercurial-prompt mercurial zsh-autosuggestions fzf-tab zsh-vi-mode pnpm-shell-completion zsh-history-substring-search zsh-syntax-highlighting)
npm 包#
这里列出一些可能你不知道的 npm 包,它们能帮你提升开发效率。
c8#
生成代码覆盖率报告的神器,基于 Node.js 原生功能,简单好用。
cli-highlight#
让终端输出的代码瞬间“高亮”,看日志的快乐你懂的。
fast-glob#
速度飞快的文件匹配工具,性能吊打 glob,但只能通过代码调用。
const fg = require("fast-glob");
const entries = await fg([".editorconfig", "**/index.js"], { dot: true });
glob#
经典的文件匹配工具,写脚本必备,还支持直接在命令行里用:
glob 'src/**/*.sh' | xargs shellcheck
jscpd#
专治代码“复读机”,用来检测代码重复率,保质保量:
jscpd -p "./**/*.js" -k 15 -l 5
ni / nr#
自动匹配项目用的包管理器,ni 安装依赖,nr 快速跑脚本,效率拉满。
nolyfill#
专治“历史包袱”的工具,替换掉那些为兼容老 Node.js 而存在的多余 polyfill,立减 node_modules 大小 50MiB 以上。
npm-run-all#
并发或串行跑 npm scripts,简单又高效。
npm-run-all --parallel lint:*"
npm-check-updates#
批量更新依赖版本,想升就升,谁还手动改 package.json。
ncu -i -t latest --packageFile "generators/**/_package.json"
minimist#
Node.js 脚本写多了少不了它,轻松解析命令行参数。
typedoc#
用 jsdoc 写 TypeScript 注释,生成文档专用。
pnpm typedoc --options typedoc.json
vue-docgen#
需要给 Vue 组件生成组件文档?用它,省时省力不糊涂。
结语#
以上就是我 2024 年常用的工具,希望能对你有所帮助。当然,每个人的需求和喜好不同,适合我的不一定适合你。如果你有其他好用的工具推荐,欢迎在评论区分享!你最常用的工具是什么?你有什么提高效率的技巧?一起来讨论吧!