Matrix 精选

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


Surfingkeys 是一个 Chrome/Firefox 的扩展,其基本功能是让用户可以通过 Vim 风格的键盘操作来控制浏览器。当然这个功能并不新鲜,已经有很多优秀的插件可以达成这种效果。但 Surfingkeys 不仅功能更为丰富,而且有非常细致且易用的可配置选项,这令用户可以脱离鼠标只用键盘来进行网页操作。本文会尝试介绍一些个人认为比较实用的功能进行介绍,希望能让各位产生兴趣。

标准模式(Normal mode)

标准模式是 Vim 中的默认模式。大部分操作都需要在标准模式下完成。在 Surfingkeys 中也是如此,在标准模式下可以通过 j/k 或者 d/u 上下滚动,通过h/l 来左右滚动。当然常用的 gg/G 这种操作也都支持。完整的快捷键列表如下(可通过 ? 呼出):

输入 ? 可看到完整的快捷键列表

在标准模式下,可以通过 f 来打开超链接,用 F 来在新标签页后台打开。按下 f 后,会在超链接处展示提示符,通过键入相应提示符这点和 Vimium 等其他类似扩展行为一致。但有两点需要注意:

  1. Surfingkeys 默认会把提示词显示在超链接的中央位置。可以通过设置配置 settings.hintAlign = "left"; 来修改提示词的展示位置。
  2. 默认提示符是「适合左手」,即提示符会从 asdfgqwertzxcvb 中选择字母进行组合,这让你可以只用左手来完成网页的浏览。当然你也可以修改配置 Hints.characters = 'yuiophjklnm'; 来换成「适合右手」。

可视化模式(visual mode)

可视化模式

Surfingkeys 还提供了可视化模式。在 Vim 中的可视化模式,可以通过移动光标来选中内容,Surfingkeys 也有同样的效果。和访问超链接一样,在按下 v 之后,会出现很多提示符,输入锚点对应的标记,在相应位置就会出现光标。此时你可以通过 Vim 快捷键来移动光标。再次按下 v,则光标的移动范围都会被选中,和鼠标圈选的效果一致。

对于选中的内容,可以通过 y 来复制到剪贴板,也可以进行其他操作。比如通过 sgsb 来使用 Google 或 Baidu 进行搜索。这两个命令的功能是用搜索引擎检索剪贴板中的内容,而在网页中有被选中内容的情况下(包括鼠标选中或者用可视化模式选中),都会检索被选中内容。

查找

选择搜索引擎

在标准模式下通过/ 来进行页面内的查找。在输入要查找的内容后,按下 Enter 会匹配输入内容,而按下 Ctrl+Enter 则会进行完整匹配。完整匹配只会匹配完整的单词,比如使用完全匹配来查找 in ,则 find 中的 in 就不会被定位到。此外,查找功能也是可视化模式的另一个入口,在使用查找功能时,SurfingKey 会进入可视化模式,方便对查找到的内容进行额外额操作。

编辑模式(Edit mode)

使用编辑模式输入内容

编辑模式,顾名思义,就是用来编辑的模式。Vim 中需要进入此模式才能进行正常的内容输入,Surfingkeys 也覆盖到了这部分功能。在任意输入框内,通过 Ctrl-i 可触发 Vim 的编辑模式。在标准模式下,直接通过大写的 I 也可触发(在有多个输入框时可以用提示符来选择,如上图所示)。

此外,在标准模式下输入 ;u 则可以编辑地址栏中的内容。这对于 Chrome 用户是非常友好的功能,因为 Chrome 没有一个便捷的方法将焦点从地址栏拉回网页。

Omnibar

Omnibar 是一个类似于 Spotlight 或者 Alfred 的功能。在 Omnibar 中可以完成很多工作,这里介绍最简单的几个:

  • 打开URL 。
    默认通过 t 呼出 Omnibar(因为很多人习惯使用 t 打开新的标签页,建议在配置中修改为 o ),可直接在里面输入网址。也可以输入关键词,Surfingkeys 会在历史记录和收藏夹中搜索相关网页,你可以 Tab 或方向键快速定位。通过g/b/w+空格 可以用 Google,百度或者Bing 进行搜索。如果输入内容后直接确定,则会使用默认搜索引擎进行搜索。
Omnibar
  • 管理/搜索收藏夹 通过 b 可打在 Omnibar 中打开收藏夹。在这里可以访问/管理收藏夹的内容。具体操作请参考 Surfingkeys 的 Github 页面

前往标签

上图演示了在按下 T 后会触发的两种行为:

  1. 在标签数不多于 N 时,会在页面顶端出现标签页的提示符(和超链接的操作相同)。通过输入提示符可跳转到目标标签页。
  2. 在标签数多于 N 时,会打开 Omnibar 的 tab 功能,可以通过搜索关键字来定位至某一标签页。

这里的 N 可以通过 settings.tabsThreshold 来修改。上图中是将 N 设置为 4 时的效果。同时官方建议增加以下配置:

mapkey('<Space>', 'Choose a tab with omnibar', function() {
    Front.openOmnibar({type: "Tabs"});
});

效果是按下空格就会触发 Omnibar 的 tab 功能。

通透模式(PassThrough mode)

通透模式类似于 Vimium 的输入模式,作用是暂时关闭 Surfingkeys 的热键而使用默认快捷键进行操作。这在一些本身需要键盘操作的网页很有用。你可以通过 At-i 进入通透模式,使用 Esc 离开通透模式。此外你也可以使用临时的通透模式:按下 p 会进入通透模式,并在 1 秒之后结束。

其他

出了以上内容, Surfingkeys 还提供了一些在浏览网站时也许经常会用到的功能,包括 PDF 预览,Markdown 预览,网页截图(包括滚动截图)等等。此外还包括了丰富的配置选项,具体可在 Github 页面 查看。总体来说,Surfingkeys 是一个可用性很高的扩展,印象中从 2017 年就已经相当成熟,但似乎很少被提及。一如开头所说,本文只列出了我觉得比较有吸引力的功能。如果你有兴趣,建议你通读一遍官方的说明,写的非常详尽明了。

最后,这里 是我是用的配置文件。

Have fun.

> 下载少数派 客户端、关注 少数派公众号,发现更多效率工具 🔧

> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺 🛒