工作区管理
VMark 中的工作区是将某个文件夹作为项目根目录打开。打开工作区后,侧边栏会显示文件树,快速打开功能会索引所有 Markdown 文件,终端从项目根目录启动,并且你打开的标签页会被记住以供下次使用。
没有工作区时仍然可以打开单个文件,但会失去文件浏览器、项目内搜索和会话恢复功能。
打开工作区
| 方式 | 操作 |
|---|---|
| 菜单 | 文件 > 打开工作区 |
| 快速打开 | Mod + O,然后在底部选择 **浏览... ** |
| 拖放 | 从 Finder 将 Markdown 文件拖入窗口——VMark 会自动检测其项目根目录并打开工作区 |
| 最近的工作区 | 文件 > 最近的工作区,选择之前的项目 |
打开工作区后,VMark 会在侧边栏显示文件浏览器。如果该工作区之前已打开过,之前打开的标签页会被恢复。
TIP
如果当前窗口有未保存的更改,VMark 会提示是否在新窗口中打开工作区,而不是替换当前内容。
文件浏览器
只要工作区已打开,文件浏览器就会显示在侧边栏中。它显示以工作区文件夹为根的 Markdown 文件树。
导航
- 单击 文件夹可展开或折叠
- 双击 或按 Enter 可在标签页中打开文件
- 非 Markdown 文件使用系统默认应用打开
文件操作
右键单击任意文件或文件夹可访问上下文菜单:
| 操作 | 描述 |
|---|---|
| 打开 | 在新标签页中打开文件 |
| 重命名 | 内联编辑文件或文件夹名称(也可按 F2) |
| 复制 | 创建文件的副本 |
| 移动到... | 通过对话框将文件移动到其他文件夹 |
| 删除 | 将文件或文件夹移至系统回收站 |
| 复制路径 | 将文件的绝对路径复制到剪贴板 |
| 在 Finder 中显示 | 在 Finder 中显示该文件(macOS) |
| 新建文件 | 在此位置创建新的 Markdown 文件 |
| 新建文件夹 | 在此位置创建新文件夹 |
你也可以直接在文件树中 拖放 文件到不同文件夹。
可见性切换
默认情况下,浏览器只显示 Markdown 文件并隐藏隐藏文件。两个切换开关可以改变此行为:
| 切换 | 快捷键 | 效果 |
|---|---|---|
| 显示隐藏文件 | Mod + Shift + .(macOS)/ Ctrl + H(Win/Linux) | 显示隐藏文件和隐藏文件夹 |
| 显示所有文件 | (设置或上下文菜单) | 在文档旁显示非 Markdown 文件 |
两个设置均按工作区保存,并在会话间持久保留。
排除的文件夹
以下文件夹默认从文件树中排除:
.gitnode_modules
这些默认设置在首次打开工作区时应用。
快速打开
按 Mod + O 打开快速打开覆盖层。它提供三个来源的模糊搜索:
- 你之前打开过的 最近文件
- 当前窗口中 已打开的标签页(以圆点标记)
- 工作区中的 所有 Markdown 文件
输入几个字符即可筛选——匹配是模糊的,所以 rme 可以找到 README.md。使用方向键导航,按 Enter 打开。底部有一行固定的 **浏览... ** 选项可打开文件对话框。
| 操作 | 快捷键 |
|---|---|
| 打开快速打开 | Mod + O |
| 导航结果 | ↑ / ↓ |
| 打开选中文件 | Enter |
| 关闭 | Escape |
TIP
没有工作区时,快速打开仍然有效——它会显示最近文件和已打开的标签页,但无法搜索文件树。
工作区内容搜索
工作区打开后,VMark 可以跨 文件内容(不仅仅是文件名)搜索 markdown 和文本文件中的匹配项。
| 操作 | 快捷键 |
|---|---|
| 打开内容搜索面板 | Mod + Shift + F |
| 跳到下一个结果 | Enter(或用方向键导航) |
| 在新标签页中打开结果 | 点击匹配预览 |
每条结果显示文件路径、行号以及高亮匹配文本的代码片段。匹配按以下顺序排序:
- 文件名相关性(名称中包含关键词的文件优先)
- 标题邻近性(标题内的匹配排在正文之前)
- 时间近度(最近修改的文件先出现)
默认排除:node_modules/、.git/、dist/、target/、coverage/,以及你在工作区设置的"排除的文件夹"中添加的任何目录。
隐藏文件:除非在文件浏览器中启用 显示隐藏文件,否则会被跳过。
它与快速打开有所不同 —— 快速打开仅搜索 文件名;内容搜索会打开匹配文件,并将光标置于匹配行。
最近的工作区
VMark 最多记住 10 个最近打开的工作区。从菜单栏的 文件 > 最近的工作区 访问它们。
- 工作区按最后打开时间排序(最新的在最前面)
- 列表在每次更改时同步到原生菜单
- 选择 清除最近的工作区 可重置列表
工作区设置
每个工作区都有自己的配置,在会话间持久保留。设置存储在 VMark 应用数据目录中——而不是项目文件夹内——以保持项目文件夹的整洁。
以下设置按工作区保存:
| 设置 | 描述 |
|---|---|
| 排除的文件夹 | 从文件浏览器中隐藏的文件夹 |
| 显示隐藏文件 | 隐藏文件是否可见 |
| 显示所有文件 | 非 Markdown 文件是否可见 |
| 上次打开的标签页 | 用于下次打开时恢复会话的文件路径 |
TIP
工作区配置与文件夹路径绑定。在同一台机器上打开相同文件夹时,总是会恢复你的设置,即使从不同窗口打开也是如此。
会话恢复
当你关闭一个已打开工作区的窗口时,VMark 会将已打开标签页的列表保存到工作区配置中。下次打开同一工作区时,这些标签页会自动恢复。
- 只有带有已保存文件路径的标签页才会恢复(未命名标签页不会持久保存)
- 如果某个文件自上次会话以来已被移动或删除,则会静默跳过
- 会话数据在窗口关闭和工作区关闭(文件 > 关闭工作区)时保存
多窗口
每个 VMark 窗口可以有独立的工作区,让你可以同时处理多个项目。
- 文件 > 新建窗口 打开一个新窗口
- 在新窗口中打开工作区不会影响其他窗口
- 窗口大小和位置按窗口记住
当你从 Finder 拖入 Markdown 文件而当前窗口已有未保存的工作时,VMark 会自动在新窗口中打开该文件的项目。
将标签页分离到新窗口
你可以将标签页拖出其窗口以创建新窗口:
- 向下拖动标签页 超过标签栏(约 40 px)将其分离到光标位置的新窗口
- 水平拖动标签页 在标签栏内重新排列其在其他标签页之间的顺序
- 固定的标签页无法拖动
手势按方向锁定:水平移动开始重排,垂直移动触发分离。你可以在拖动过程中将指针移出标签栏来从重排切换到分离。
外部更改
VMark 监控你的工作区,以检测其他程序(Git、外部编辑器、构建工具等)所做的更改,并保持已打开文档同步。
- 未修改的文件 在磁盘内容更改时自动重新加载。一条简短的提示通知确认重新加载。
- 有未保存更改的文件 会触发一个包含三个选项的对话框:另存为(将你的版本保存到新位置)、重新加载(放弃你的更改并从磁盘加载)或 保留(保留你的编辑并将文件标记为分歧状态)。
- 已删除的文件 在其标签页中标记为缺失,但不会关闭——你仍然可以将内容保存到新位置。
- 当多个已修改文件同时更改时(例如
git checkout后),VMark 会将它们批量合并到一个对话框中,以便你可以全部重新加载、全部保留或逐个查看。 - 如果分歧文件的磁盘内容后来与编辑器中的内容匹配(例如
git checkout恢复了相同的文本),VMark 会自动清除分歧状态,正常的自动保存将恢复。
VMark 会过滤自身的保存操作,因此你永远不会因应用内所做的更改而收到提示。
macOS Dock 最近文稿
你在 VMark 中打开的文档会在 macOS 中注册,因此当你右键单击 Dock 中的 VMark 图标时,它们会出现在 最近使用的项目 子菜单中。
终端集成
集成终端自动以工作区根目录作为其工作目录。当你打开或切换工作区时,所有终端会话都会 cd 到新的根目录。
在每个终端会话中,VMARK_WORKSPACE 环境变量会被设置为工作区路径,以便你的脚本可以引用项目根目录。
Shell CLI 命令
VMark 可以安装 vmark Shell 命令,让你从终端打开文件和文件夹。
安装
前往 帮助 > 安装 'vmark' 命令。VMark 会向 /usr/local/bin/vmark 写入一个小型启动脚本,并请求你的管理员密码(与 VS Code 安装 code 命令的方式相同)。
用法
# 打开文件
vmark README.md
# 以工作区方式打开文件夹
vmark ~/projects/my-blog
# 打开多个文件
vmark chapter1.md chapter2.md该命令委托给 open -b app.vmark,因此 macOS 处理单实例行为——文件在你现有的 VMark 窗口中打开,而不是启动新进程。
卸载
前往 帮助 > 卸载 'vmark' 命令 以删除 /usr/local/bin/vmark。如果该路径的文件不是由 VMark 安装的,操作将被阻止,并提示你手动删除。