@seflless: 我很喜欢 @tobi 的 try 项目。我拿来用了,并让它变得易于部署实验。我只有一个叫 "tri…" 的仓库

X AI KOLs Following 工具

摘要

一个名为 'try' 的 Ruby CLI 工具,帮助开发者通过模糊搜索、自动日期和智能排序来管理和浏览实验目录。一位用户对其进行了扩展,以便轻松将实验部署到 GitHub Pages。

我很喜欢 @tobi 的 try 项目。我拿来用了,并让它变得易于部署实验。我只有一个叫 "tries" 的仓库,以及计算机上一个名为 "tries" 的命令,可以从任何文件夹运行(就像 try 一样),将任何更改推送到该仓库。它使用 GitHub Pages 来承载静态 HTML 演示。完美运行。
查看原文
查看缓存全文

缓存时间: 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 个名为 testtest2new-testactually-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-server
  • connpool 能匹配 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 点的编码灵感不再消失于虚无。

常见问题

问:为什么不用 cdls 答:因为你有 200 个目录,记不清是叫 test-redisredis-test 还是 new-redis-thing

问:为什么不用 fzf 答:fzf 对文件很好用。但这个工具专门针对项目目录,内置时间感知和自动创建功能。

问:我可以用它来管理真正的项目吗? 答:可以,但它专为实验设计。真正的项目应该用真实的名字放在真实的位置。

问:如果我有数千个实验怎么办? 答:首先,欢迎加入俱乐部。其次,它可以很好地处理——评分算法确保相关项目始终置顶。

贡献

它只有一个文件。如果你想修改什么,直接编辑它即可。如果你觉得别人也会喜欢,就发个 PR。

许可

MIT - 随意使用。


由患有 ADHD 的开发者,为患有 ADHD 的开发者打造。

你的实验值得一个家。 🏠

相似文章