跳转到内容

Shell 函数

Omarchy 附带了一组 Shell 函数,用于简化常见任务并封装复杂的参数调用。

  • compress [file/dir]:从文件或目录创建 tar.gz 归档。
  • decompress [file.tar.gz]:解压 tar.gz 文件。
  • iso2sd [image.iso]:使用指定的 iso 文件在 SD 卡上创建可启动驱动器,并以交互方式选择驱动器。
  • format-drive [device] [name]:将整个磁盘格式化为单个 exFAT 分区(该格式在 Windows 和 macOS 上同样可用)。不带参数运行即可查看可用的驱动器。请务必小心!

为 tmux 提供即时的多窗格开发布局:

  • tdl [ai]:创建一个 Tmux 开发布局,包含你的编辑器、一个 AI agent 和一个终端。使用 agent 别名,例如 tdl c 对应 opencode,或 tdl cx 对应 Claude Code,也可以传入第二个 agent 以同时运行两者,例如 tdl c cx。
  • tds:创建一个 Tmux 开发方阵,包含编辑器、差异监视(通过 hunk diff --watch)、终端和 opencode。
  • tdlm [ai]:为当前目录中的每个子目录创建一个 tdl 窗口。
  • tsl [count] [command]:创建一个以网格方式平铺的窗格群,全部运行相同的命令(非常适合 AI agents)。

Herdr 也提供相同的布局,分别为 hdl、hds、hdlm 和 hsl。

  • ga [branch]:在当前仓库旁边创建一个新的 worktree 和分支,并跳转进入其中。
  • gd:移除当前 worktree 及其分支(会先请求确认)。
  • rsw [source] [destination]:启动一个后台监视器,在源发生任何变化时通过 rsync 同步到目标。目标可以是远程主机,例如 rsw ~/Work/app nyc-dev:Work/app。
  • lsw:列出所有活动的监视器。
  • dsw:停止所有活动的监视器。

非常适合针对远程主机进行具有 localhost 安全上下文权限的 Web 开发。

  • fip:通过 SSH 将一个或多个端口从远程主机转发到 localhost。
  • dip:断开一个或多个已转发的端口。
  • lip:列出所有活动的 SSH 端口转发。

假设你在一台可通过 nyc-dev 访问的机器上的 3000 端口启动了一个开发服务器,那么你可以运行 fip nyc-dev 3000 来转发该端口,这样 localhost:3000 实际上就能访问到 nyc-dev:3000,而且无需 SSL 证书来建立测试 WebSocket 之类所需的安全上下文。

ssh 本身被封装在一个函数中,当远程 tmux、Herdr 或编辑器占用连接期间连接中断时,该函数会清理终端,并在交互式会话断开时自动重连(Ctrl-C 可停止重试循环)。