Skip to content

动作菜单与预览

动作菜单

每个结果——文件、文件夹或应用——除了"直接打开"之外还有一整套动作:在资源管理器中定位、复制路径、以管理员身份运行、剪切/复制/粘贴文件本身、删除(移入回收站)或彻底删除,以及插件添加的任何动作 (比如完整的 Windows 右键菜单,包含级联子菜单)。

打开动作菜单热键(默认 Ctrl+O)或在选中结果上按方向键右键即可打开。菜单内:

  • 上/下一项——方向键,或你自己配置的上/下一项热键,都可以移动高亮项。哪怕自定义绑定成了裸 Tab 键这种情况,在这里也会和主结果列表里表现完全一致。
  • 在带子菜单的项(比如"发送到"这类级联菜单)上按右方向键/回车会进入子菜单;左方向键或 (搜索框为空时的)Backspace 会退出一级。
  • Escape 退出动作菜单;如果之前输入过内容用来过滤动作列表,会先清空搜索框。
  • 输入文字可以按名称过滤当前可见的动作,和过滤搜索结果的方式一样。

完整窗口的结果列表

双击一个结果通常就是打开它,和按回车一样——只有一个例外:双击路径列会改成打开该结果所在的文件夹,效果和在这一行其它地方按 Ctrl+回车一样。插件自己的自定义列也可以给自己定义同样的双击行为。

结果列表会保留每一条匹配,而不是截断成固定的一页;而且它会随结果陆续到达逐步填入,不必等到搜索结束才一次性出现——在大容量磁盘上,一个宽泛的查询可能要跑好几秒,而这段时间里各行始终可用。方向键导航在两端循环:在第一行按 ↑ 会跳到最后一行,在最后一行按 ↓ 会回到第一行。

这个窗口没有标题栏,它的顶部区域就是拖拽区:按住其中任何不是搜索框、也不是窗口按钮的位置拖动,即可移动窗口。指针位于顶部区域时,顶端会有一条提示条淡入,指示可以从哪里抓取。

QuickLook 预览

在选中结果上按 QuickLook 热键(默认 Alt+P)会打开一个停靠在搜索窗口旁边的预览面板——图片、文档等可预览的文件类型不用离开 SwiftList 就能查看。再按一次(或切换到 QuickLook 无法预览的结果) 即可关闭。

音频和视频文件——只要是 WPF 内置播放能力无需额外解码器就能支持的格式(MP4、WMV、AVI、MOV、 MP3、WAV、WMA 等)——一打开预览就会自动播放,带一个跟随主题的小播放条(播放/暂停、进度拖动、当前/总时长、静音),而不是显示静态缩略图。切换到其他结果或关闭预览会立刻停止播放。如果某个文件的具体编码解不出来,会退回显示静态缩略图。

预览窗口的尺寸是固定的、用户可配置的——见设置 → 通用 → 预览窗口——不会随当前显示的结果数量变化。不管设置成多大,SwiftList 都会自动保证预览窗口完整显示在屏幕内:如果配置的尺寸在当前显示器上放不下与搜索窗口并排显示,会自动贴到有空间的一侧;如果配置的尺寸本身就比显示器可用区域还大,窗口会被缩小到能完整放下,而不会跑到屏幕外面。

如果正在预览的文件需要它自己的原生处理程序弹出一个对话框——最常见的就是 Word 或 Excel 询问加密文档的密码——快速窗口和预览面板会在这个弹窗存续期间自动隐藏,否则它们会挡在弹窗前面,让弹窗根本点不到。这不是 SwiftList 崩溃或关闭了:处理完那个弹窗(输入密码、关掉它,随便什么它要求的操作) 之后,两个窗口会原样恢复,搜索内容和选中项都还在。

预览窗口的顶部本身就是被预览文件的拖拽源——把它拖到资源管理器、编辑器或任何其他放置目标,效果与把结果行从搜索窗口拖出去完全一致。

从快速窗口打开完整窗口时,会把预览窗口的打开状态一并带过去,所以原本已经开着的预览会保持打开。

通过 QuickLook 的外部预览(可选)

虽然名字撞了,但这和上面说的内置预览面板是两回事:这里指的是一个独立的第三方应用,同样叫 QuickLook(GitHub 上的 QL-Win/QuickLook,GPL 协议),需要你自己安装——SwiftList 不会内置它。

如果你装了它并且它正在运行,内置的(实验性)QuickLook 桥接插件——和其他插件一样,可以在设置 → 插件里看到、开关——会通过它自己的命名管道连上它,把上面提到的所有内置预览类型的活儿都接管过去,优先级比它们都高。这期间 SwiftList 自己的预览面板会隐藏起来, QuickLook 那个独立的悬浮窗会被挪到本该是预览面板占据的那块地方——看起来就像"预览面板变成了 QuickLook",但技术上 QuickLook 的窗口一直是一个完全独立的顶层窗口,只是被 SwiftList 挪过去跟着走而已。

动作菜单里有一项用 QuickLook 预览,即便某个内置预览类型本来会赢,也可以用它手动把某个结果送去给 QuickLook 看。

因为这完全依赖 QuickLook 自己那套没有公开文档、私有的进程间通信协议,而不是什么正式发布的集成接口,QuickLook 以后的版本随时可能改掉这套协议,把这个功能悄悄弄坏。卸载或关掉 QuickLook 不影响其他任何东西——SwiftList 会自动退回到自己内置的那些预览类型。