zshell

项目与会话

Zshell 如何组织你的工作——侧边栏里的项目、作为标签页的会话,以及重启后还剩下什么。

项目

一个项目就是一件正在做的事——实际用起来通常就是一个仓库——有自己的终端、标签页和面板状态。

Cmd+N 新建一个,里面带一个终端。这个终端从当前会话的目录启动;如果没有当前会话,就从你的用户主目录启动,所以接下来通常是 cd 到目标位置。剩下的 Zshell 会接手:文件树和 git 面板会锚定到包含那个目录的仓库上。

想省掉这次 cd,在 Finder 里右键一个文件夹,选 服务 → New Zshell Project Here——它会作为一个项目打开,终端已经在里面启动好了。

项目是 Zshell 切换的基本单位:

操作快捷键
新建项目Cmd+N
跳到第 1–9 个项目Cmd+19
下一个 / 上一个项目Opt+Cmd+] / [
收起项目侧边栏Cmd+B

项目的名字来自它当前选中的会话——也就是说,它跟着终端走,和标签页标题一样。右键侧边栏里的项目,可以 Rename…Use Automatic Title 撤销)、Set Project Directory…Close Project。关闭项目会结束它的会话,但不会动磁盘上的任何东西。

项目目录

有两个面板需要知道自己在显示哪个文件夹:文件树和 git 面板。默认情况下 Zshell 自己判断—— 它从终端的当前目录出发,往上找到最近的那个包含它的 git 仓库

所以在仓库里 cdcd 去,文件树不会跟着跳:仓库根目录始终是根目录。不在仓库里时,这两个面板就单纯跟着终端走。

如果前台程序进入了另一个 checkout——比如 agent 切进自己的 Git worktree——文件、Git 和信息面板会跟着那个 checkout,前台任务回来时再恢复。手动固定的项目目录始终优先,也会关闭这种自动换根。

想固定住,右键项目选 Set Project Directory…。固定的目录会跨重启记住,Use Automatic Directory 则交还自动判断。

信息面板(Cmd+Shift+I)两个都显示:shell 实时的 Current Directory(与下面不同时才出现),以及面板锚定的 Project Directory,自动推导时标着 (AUTO)

会话

每个项目可以有任意多个会话,显示为顶部的标签页。一个会话就是一个真正的登录 shell—— zshfishbash,你账户设成什么就是什么——各有自己的工作目录和滚动历史。

操作快捷键
新建会话Cmd+T
切到第 1–9 个标签页Ctrl+19
标签页切换器(按最近使用)Ctrl+Tab
下一个 / 上一个标签页Cmd+Shift+] / [
关闭当前窗格Cmd+W

如果固定了项目目录,新会话优先从那里启动。否则它继承当前会话的目录;两个都没有时,再回退到用户主目录。

标签页标题

标签页标题来自终端自己报告的内容——你 shell 提示符里的转义序列,或者当前正在跑的程序。右键标签页可以 Rename… 手动改名,Use Automatic Title 则回到跟随终端。

标签页菜单里其余的是常规那一套:CloseClose OthersClose Tabs to the RightClose All,外加针对会话目录的 Reveal in FinderCopy Absolute PathClose FilesClose Diffs 会清掉项目里的对应内容,但保留终端和浏览器窗格。

窗口

Cmd+Shift+N 新开一个窗口。窗口之间互相独立——各自的项目、各自的侧边栏状态——恢复时也是分开恢复的。

重启后还剩下什么

Zshell 会随着你的操作持续快照布局,所以退出再打开会拿回:

  • 每个项目,顺序不变
  • 每个标签页,包括自定义名称和固定的目录
  • 每个标签页里的窗格布局
  • 哪些侧边栏是打开的、右侧选中的是哪个面板

终端会在原目录里以全新的 shell 回来。Zshell 不会在后台留着进程——退出时如果有构建在跑,它就在退出时停了。

之前的滚动历史只有你主动要求才会恢复,开关是 terminal.restore-history。它默认关着,因为恢复的滚动历史会保存在磁盘上。

本页目录