@seflless: 我很喜欢 @tobi 的 try 项目。我拿来用了,并让它变得易于部署实验。我只有一个叫 "tri…" 的仓库
摘要
一个名为 'try' 的 Ruby CLI 工具,帮助开发者通过模糊搜索、自动日期和智能排序来管理和浏览实验目录。一位用户对其进行了扩展,以便轻松将实验部署到 GitHub Pages。
查看缓存全文
缓存时间: 2026/06/26 08:08
我正在喜欢 @tobi 的 try 项目。我拿来它后,让它变得更容易部署实验。我只有一个叫 “tries” 的仓库,以及一个可以在任何文件夹运行的 “tries” 命令(就像 try 一样),它会把任何更改推送到这个仓库。它使用 GitHub Pages 来托管任何静态 HTML 演示。完美运行。
tobi/try
来源:https://github.com/tobi/try
try - 每个灵感都应有专属目录
网站 (https://pages.tobi.lutke.com/try/) · RubyGems (https://rubygems.org/gems/try-cli) · GitHub (https://github.com/tobi/try)
你的实验值得一个家。 🏠
适合那些不断为小实验创建新项目的人,一个单文件 Ruby 脚本,用于快速管理和导航,让它们保持一定条理。
你是否曾发现自己的文件系统里散布着 50 个名为 test、test2、new-test、actually-working-test 的目录?或者更糟,直接在 /tmp 里写代码然后丢失一切?
try 为你那美妙而混乱的思绪而生。
它能做什么
模糊搜索演示
在 asciinema (https://asciinema.org/a/ve8AXBaPhkKz40YbqPTlVjqgs) 上查看交互版本
瞬间导航所有实验目录,带有:
- 开箱即用的模糊搜索
- 智能排序 - 最近使用的项目会浮到顶部
- 自动日期前缀 - 创建类似
2025-08-17-redis-experiment的目录 - 零配置 - 只有一个 Ruby 文件,无依赖
安装
RubyGems(推荐)
gem install try-cli
然后添加到你的 Shell 中:
# Bash/Zsh - 添加到 .zshrc 或 .bashrc
eval "$(try init)"
# Fish - 添加到 config.fish
try init | source
快速开始(手动安装)
curl -sL https://raw.githubusercontent.com/tobi/try/refs/heads/main/try.rb > ~/.local/try.rb
# 使 "try" 可执行,以便直接运行
chmod +x ~/.local/try.rb
# 添加到 Shell (bash/zsh)
echo 'eval "$(ruby ~/.local/try.rb init ~/src/tries)"' >> ~/.zshrc
# 对于 fish shell 用户
echo '~/.local/try.rb init ~/src/tries | source' >> ~/.config/fish/config.fish
问题
你在学习 Redis。你创建了 /tmp/redis-test。然后又创建了 ~/Desktop/redis-actually。接着又是 ~/projects/testing-redis-again。三周后,你找不到那个凌晨 2 点写的绝妙连接池方案了。
解决方案
所有实验都放在一个地方,即时模糊搜索:
$ try pool
→ 2025-08-14-redis-connection-pool 2h, 18.5
2025-08-03-thread-pool 3d, 12.1
2025-07-22-db-pooling 2w, 8.3
+ 新建: pool
输入、下箭头、回车。你就到了。
特性
🎯 智能模糊搜索
不仅仅是子字符串匹配——它更智能:
rds能匹配redis-serverconnpool能匹配connection-pool- 最近的项目得分更高
- 匹配度相同时,较短的名字获胜
⏰ 时间感知
- 显示你上次接触每个项目是多久以前
- 最近访问的目录浮到顶部
- 非常适合“我昨天在做什么?”
🎨 漂亮的文本界面
- 干净、极简的界面
- 键入时高亮匹配项
- 显示得分,让你知道排序原因
- 默认深色模式(当然)
📁 有序的混乱
- 所有内容都在
~/src/tries(可通过TRY_PATH配置) - 自动添加日期前缀:
2025-08-17-your-idea - 如果你已经输入了名称,则跳过日期提示
Shell 集成
-
Bash/Zsh:
# 默认为 ~/src/tries eval "$(~/.local/try.rb init)" # 或指定路径 eval "$(~/.local/try.rb init ~/src/tries)" -
Fish:
~/.local/try.rb init | source # 或指定路径 ~/.local/try.rb init ~/src/tries | source
注意:
try打印的运行时命令与 Shell 无关(绝对路径、带引号)。只有小的包装函数因 Shell 而异。
用法
try # 浏览所有实验
try redis # 跳转到 redis 实验,或新建一个
try new api # 以 "2025-08-17-new-api" 开始
try . [name] # 为当前仓库创建带日期的 worktree 目录
try ./path/to/repo [name] # 使用另一个仓库作为 worktree 源
try worktree dir [name] # 同上,显式 CLI 形式
try clone https://github.com/user/repo.git # 将仓库克隆到日期前缀目录
try https://github.com/user/repo.git # clone 的简写(同上)
try --help # 查看所有选项
关于 worktree 的说明(try . / try worktree dir):
- 如果提供自定义 [name],则使用该名称;否则使用当前工作目录的 basename。两者都加上今天的日期前缀。
- 如果在 Git 仓库内:在所创建的目录中添加一个分离 HEAD 的 git worktree。
- 在仓库外:仅创建目录并切换进去。
Git 仓库克隆
try 可以自动将 git 仓库克隆到合适命名的实验目录中:
# 使用自动生成的目录名克隆
try clone https://github.com/tobi/try.git
# 创建: 2025-08-27-tobi-try
# 使用自定义名称克隆
try clone https://github.com/tobi/try.git my-fork
# 创建: my-fork
# 简写语法(无需输入 'clone')
try https://github.com/tobi/try.git
# 创建: 2025-08-27-tobi-try
支持的 git URI 格式:
https://github.com/user/repo.git(HTTPS GitHub)[email protected]:user/repo.git(SSH GitHub)https://gitlab.com/user/repo.git(GitLab)[email protected]:user/repo.git(SSH 其他主机)
生成目录名时,.git 后缀会自动从 URL 中移除。
键盘快捷键
↑/↓或Ctrl-P/N/J/K- 导航Enter- 选择或创建Backspace- 删除字符Ctrl-D- 删除目录(需确认)ESC- 取消- 直接输入即可过滤
配置
设置 TRY_PATH 来更改实验存储位置:
export TRY_PATH=~/code/sketches
默认值:~/src/tries
Nix
快速开始
nix run github:tobi/try
nix run github:tobi/try -- --help
nix run github:tobi/try init ~/my-tries
Home Manager
{
inputs.try.url = "github:tobi/try";
imports = [ inputs.try.homeManagerModules.default ];
programs.try = {
enable = true;
path = "~/experiments"; # 可选,默认为 ~/src/tries
};
}
Homebrew
快速开始
brew tap tobi/try https://github.com/tobi/try
brew install try
安装后,添加到你的 Shell:
-
Bash/Zsh:
# 默认为 ~/src/tries eval "$(try init)" # 或指定路径 eval "$(try init ~/src/tries)" -
Fish:
try init | source # 或指定路径 try init ~/src/tries | source
为什么用 Ruby?
- 单一文件,无依赖
- 在任何带有 Ruby 的系统上都能运行(macOS 内置)
- 处理数千个目录依然足够快
- 易于修改
设计理念
你的大脑不会按照整齐的文件夹来工作。你有想法,你尝试各种东西,你像只喝了咖啡的松鼠一样频繁切换上下文。这个工具拥抱这一点。
每个实验都有归宿。每个归宿都能即刻找到。你凌晨 2 点的编码灵感不再消失于虚无。
常见问题
问:为什么不用 cd 和 ls?
答:因为你有 200 个目录,记不清是叫 test-redis、redis-test 还是 new-redis-thing。
问:为什么不用 fzf?
答:fzf 对文件很好用。但这个工具专门针对项目目录,内置时间感知和自动创建功能。
问:我可以用它来管理真正的项目吗? 答:可以,但它专为实验设计。真正的项目应该用真实的名字放在真实的位置。
问:如果我有数千个实验怎么办? 答:首先,欢迎加入俱乐部。其次,它可以很好地处理——评分算法确保相关项目始终置顶。
贡献
它只有一个文件。如果你想修改什么,直接编辑它即可。如果你觉得别人也会喜欢,就发个 PR。
许可
MIT - 随意使用。
由患有 ADHD 的开发者,为患有 ADHD 的开发者打造。
你的实验值得一个家。 🏠
相似文章
@tom_doerr: 基于项目的教程,从零开始构建应用程序 https://github.com/ckissi/Learn-by-projects…
一个GitHub仓库,汇集了多种语言的基于项目的编程教程,帮助开发者从零开始构建应用程序。
@leereilly: 虽然迟到了,但我今晚终于试用了 GitHub Copilot 应用……哇。仅用几个提示和几分钟,我就……
@leereilly 分享了他使用 GitHub Copilot 快速构建一个带有动画和 GitHub 贡献图模式的 3D 魔方可视化工具及求解器的体验。
@askalphaxiv: 介绍针对GitHub仓库的autoresearch功能 - 将任意仓库URL中的'Github'改为'ARGithub' - 研究工件不再仅限于论文…
介绍一款工具,通过将任意仓库URL中的'Github'改为'ARGithub',即可部署一个智能体,使其熟悉代码库、解决配置问题并运行实验。
@julien_c:以全新方式探索你的 @huggingface 仓库。可视化存储、发现异常值,并直接浏览你的仓库…
一个新的 CLI 工具,用于导航和可视化 Hugging Face 仓库,让用户能够直接从终端探索存储、发现异常值并管理仓库。
Tomesphere:300万篇论文页面,包含TLDR、同行评审、代码及SPECTER2相似度图谱 [P]
Tomesphere是一款免费工具,通过Gemini生成的TLDR、同行评审、代码仓库以及用于论文发现的SPECTER2相似度图谱,丰富了arXiv和OpenAlex的论文页面。