所有文章

如何让 Mac 打开其他文件管理器而不是访达

· 阅读约 6 分钟

你已经换用了别的文件管理器,访达却还是不断冒出来:在 Safari 里点按下载项旁边的放大镜,或在别的 App 里选择“在‘访达’中显示”,打开的都是访达窗口。你在系统设置里寻找“默认文件管理器”之类的选项,却找不到。

简单来说:macOS 没有任何能取代访达的设置,但有一项文件查看器偏好设置。当 App 请 macOS 显示某个文件时,macOS 会把请求交给登记在那里的 App;只要你没改过,那就是访达。在那里登记另一个文件管理器,这些“在‘访达’中显示”命令就会改为打开它。在 Folia Files 中只需一个开关:设置 › 通用 › Mac 集成 › 将 Folia Files 用作默认文件查看器。无论如何,访达都会继续运行,桌面仍然由它来显示。

为什么 Mac 没有“默认文件管理器”设置

访达不是普通的 App,而是 macOS 的一部分。它随登录启动,负责显示桌面及其图标,位于受保护的系统宗卷上,它的菜单里甚至没有“退出”命令。你无法卸载它,也无法用别的 App 取代它。

你能改变的,是“显示”文件的请求最终交给谁。这正好解决最常见的烦恼:其他 App 总把你带回访达。剩下的就是习惯问题:让你的文件管理器一键可达(见本文末尾)。

文件查看器设置的作用

告诉你文件在哪里的 App,很少自己去和访达打交道。许多 App 调用的是 macOS 的一个标准功能(属于 Apple 的 AppKit 框架),让项目“在文件查看器中”显示。这个功能会读取一项名为 NSFileViewer 的偏好设置:如果其中是另一个 App 的标识符,macOS 就会用那个 App 打开这些项目,而不是在访达中显示它们。

实际效果如下:

  • App 在启动时读取它。 每个 App 会一直沿用读到的值,直到退出。修改之后,请退出并重新打开 Safari、邮件以及你常用的其他 App;在此之前,它们的“在‘访达’中显示”仍会打开访达。
  • 命令名称不变。 菜单里仍然写着“在‘访达’中显示”:这段文字属于 App 本身,变的只是它通往哪里。
  • 登记的 App 收到的是“打开”请求。 专门为此设计的文件管理器会在所在文件夹中显示该项目;换成其他 App,则只会直接打开文件。请只登记提供这一选项的 App。
  • 它作用于你的整个用户账户。 这是所有 App 共用的一项设置,不能逐个 App 选择。

它不会改变的

  • 访达照常运行。 它仍然显示桌面及其图标,它的图标仍在程序坞中,在桌面上连按一个文件夹,仍会在访达窗口中打开。
  • 直接点名访达的 App,打开的仍是访达。 有些 App 和脚本不经过文件查看器,而是直接向访达发送请求(例如通过 AppleScript)。它们仍会打开访达窗口。
  • “打开”和“存储”对话框属于 macOS。 它们不是访达窗口,这项设置也不会影响它们。想在其中直接跳到正确的文件夹,请参阅如何在每个“打开”和“存储”对话框中前往正确的文件夹。

把 Folia Files 设为默认文件查看器

  1. 在 Folia Files 中,选取 Folia Files › 设置…(⌘,)。
  2. 点按通用,然后滚动到 Mac 集成。
  3. 打开将 Folia Files 用作默认文件查看器。
  4. 退出并重新打开你会用到“在‘访达’中显示”的 App。

Folia Files 设置的“通用”页面:“Mac 集成”部分中有将 Folia Files 用作默认文件查看器的选项

欢迎导览的随时触手可及页面也提供同一个开关:在 Folia Files 中打开其他 App 的“在‘访达’中显示”。

从此以后,当某个 App 要显示一个文件时,Folia Files 会来到前台,并在文件所在的文件夹中选中它:如果当前面板已经显示该文件夹,就在当前面板中选中;否则在最前面窗口的新标签页中打开。同一文件夹中的多个项目会一起被选中;文件夹则在单独的标签页中打开。如果 Folia Files 没有打开,它会先启动、恢复你的窗口,再显示该项目。

Folia Files 在单独的标签页中打开“下载”文件夹,选中了刚下载的发票

另外还有两点:

  • Folia Files 自己的“在‘访达’中显示”仍会打开访达。 需要真正的访达窗口时,在任意文件或文件夹的右键菜单中就能找到这个命令。
  • 要恢复原状,关闭这个选项即可。Folia Files 会移除这项偏好设置,等你重新打开其他 App 后,“在‘访达’中显示”就会再次通往访达。

这个开关只在从我们网站下载的 Folia Files 中提供。即将推出的 Mac App Store 版本不包含它:App Store 中的 App 无法更改这项影响整个 macOS 的设置。

在终端里自己设置

如果你用的文件管理器没有这样的开关,或者只是想查看当前设置,可以在终端里用 defaults 读写同一项偏好设置。Apple 并未公开说明 NSFileViewer:请把它当作进阶用户的小技巧,而不是官方设置。

查看当前设置:

defaults read -g NSFileViewer

如果显示的是某个 App 的标识符,说明那个 App 就是文件查看器;如果报错说找不到这个键,说明没有任何设置,使用的是访达。

查找某个 App 的标识符(把 App 名称写在引号里):

osascript -e 'id of app "Folia Files"'

进行设置(-g 表示所有 App 都会读取的全局域),把 com.example.filemanager 换成你查到的标识符:

defaults write -g NSFileViewer -string com.example.filemanager

撤销设置、回到访达:

defaults delete -g NSFileViewer

无论哪种情况,都请退出并重新打开你常用的 App。另外,如果要删除用这种方式设置的文件管理器,请先删除这项设置。

让文件管理器一键可达

文件查看器负责的是其他 App 给你显示的文件。至于你自己要打开的内容,下面几项设置可以帮助 Folia Files 在日常使用中接替访达:

  • 登录时打开 Folia Files:位于设置 › 通用 › 启动。
  • 显示/隐藏 Folia Files:在任何 App 中按 ⌃⌥F,这个快捷键可在设置 › 快捷键中更改。
  • 从访达打开:右键点按文件夹,选择“服务 › 在 Folia Files 中打开”;或把文件夹拖到程序坞中的 Folia Files 图标上,在新标签页中打开它。
  • 你在访达中的个人收藏:设置 › 通用 › “访达”设置 › 从“访达”沿用… 会沿用它边栏中的个人收藏、默认显示方式,以及隐藏文件和扩展名的设置。

还在挑选接替访达的 App?我们的访达替代品对比列出了每款 App 能做什么。