Omarchy Shell 效率技巧:fzf、Tmux、Worktree、同步与端口转发
使用 Omarchy 内置 fzf、Zoxide、ripgrep、fd、bat、Tmux 布局、Git worktree、rsync watcher 和 SSH 端口转发提升终端效率。
AMZDIR Editorial · 发布 · 更新
Omarchy 预装了一组现代 Shell 工具,并把常见的多窗格开发、Git worktree、文件同步和 SSH 转发封装为短函数。先理解每个别名会做什么,再把它放进重要项目;短命令不是跳过 Git 状态、目标路径和权限检查的理由。
先确认命令来自哪里
Shell 函数、别名和可执行文件的行为不同。遇到教程中的短命令,先运行:
type ff
type tdl
type ga
type rsw
type fiptype 会告诉你它是别名、函数还是可执行文件。若当前系统找不到命令,先完成官方更新并重新打开终端,不要从旧帖子复制同名脚本覆盖它。
用现代工具替代冗长操作
| 目标 | Omarchy 常用入口 | 关键技巧 |
|---|---|---|
| 模糊找文件 | ff | 在当前目录树搜索并预览 |
| 搜索命令历史 | Ctrl + R | 由 fzf 交互筛选历史 |
| 跳转常用目录 | cd oma | Zoxide 会匹配访问过的路径 |
| 搜索文件内容 | rg Controller app/ | 默认递归且速度快 |
| 按名称找文件 | fd person.rb | -H 才包含隐藏路径 |
| 带高亮查看文件 | bat file.rb | 同时提供行号和分页 |
| 查看命令示例 | tldr tar | 先看常用用法,再需要时读 man |
| 建临时实验目录 | try | 统一放在 ~/Work/tries |
fd ... / -H 会遍历整个文件系统和隐藏目录,可能很慢并触达不应公开的路径。优先从项目目录开始。
一键建立 Tmux 开发布局
先用 Super + Alt + Return 打开 Tmux 终端,再在 Tmux 会话中运行:
| 函数 | 作用 |
|---|---|
tdl [agent] | 编辑器、AI Agent、终端三栏布局 |
tds | 编辑器、实时 diff、终端、Agent 四格布局 |
tdlm [agent] | 为当前目录的多个子目录各建一个布局 |
tsl [count] [command] | 把同一命令铺到多个窗格 |
例如:
cd ~/Work/example
tdl cx这会把 Claude Code 别名 cx 放进开发布局。Agent 可能执行写操作;先在非关键仓库确认当前目录、权限模式和 Git diff。tsl 并行运行同一命令时,避免让多个窗格同时修改同一文件、数据库或部署目标。
Herdr 提供对应的 hdl、hds、hdlm、hsl。不要在同一教程里默认读者已经安装或启用了所有可选 Agent。
用 worktree 隔离并行分支
Omarchy 提供:
ga [branch]:在主仓库旁建立新 worktree 和分支并进入;gd:删除当前 worktree 及其分支,执行前会确认。
建议流程:
git status --short
ga feature/search
git status --short开始前确认原仓库没有被忽略的本地依赖或未提交基线;完成后先提交/推送需要保留的工作,再运行 gd。删除 worktree 与分支是实质性操作,不能只凭“已合并”提示判断本地内容可丢弃。
用 rsync watcher 同步开发目录
rsw [source] [destination] 会在源目录变化时后台同步,目标也可以是 SSH 主机:
rsw ~/Work/app nyc-dev:Work/app
lsw
dswlsw列出活动 watcher;dsw停止全部 watcher。
先用一个临时目录验证方向、忽略规则和删除行为。同步不是备份:错误的源、目标或自动删除策略可能快速传播问题。对生产主机,优先使用带审查和发布记录的部署流程。
把远程端口安全映射到 localhost
当开发服务运行在 SSH 主机 nyc-dev 的 3000 端口时:
fip nyc-dev 3000
lip
dipfip 建立一个或多个转发,lip 查看活动转发,dip 断开。这样可通过 localhost:3000 访问远端开发服务,并获得浏览器对 localhost 安全上下文的支持。
端口转发不等于远端服务已经安全。确认 SSH 主机身份、监听地址和应用认证;不要把数据库、管理面板或无认证服务转发给不受信任用户。
Omarchy 的交互式 ssh 包装还会在连接中断后清理终端状态,并尝试重连。Ctrl + C 可停止重试;长任务仍应运行在远端 Tmux/Herdr 中,而不是依赖网络连接一直存在。
压缩与磁盘函数的安全边界
compress [file/dir] 与 decompress [file.tar.gz] 适合常规 tar.gz 打包。解压未知归档前先列出文件,避免路径穿越或覆盖同名内容。
下面两个函数会改写整块设备:
iso2sd image.iso
format-drive /dev/device NAMEiso2sd 制作启动盘,format-drive 把整盘格式化为单个 exFAT 分区。执行前必须通过容量、型号、挂载点和设备路径多重确认目标;不要把网页示例中的 /dev/device 直接替换成猜测值。
把效率技巧变成可恢复流程
- 用
type和--help确认当前命令; - 在测试目录运行一次;
- 保存 Git 状态、同步方向和远端目标;
- 并行任务之间隔离 worktree、端口与数据;
- 结束后关闭 watcher 和端口转发;
- 用测试、Git diff 和真实访问验证结果。
桌面侧技巧见Omarchy 4 隐藏技巧,编辑器与窗格基础见终端、Tmux 与 LazyVim。