Matrix 精选
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
Surfingkeys 是一个 Chrome/Firefox 的扩展,其基本功能是让用户可以通过 Vim 风格的键盘操作来控制浏览器。当然这个功能并不新鲜,已经有很多优秀的插件可以达成这种效果。但 Surfingkeys 不仅功能更为丰富,而且有非常细致且易用的可配置选项,这令用户可以脱离鼠标只用键盘来进行网页操作。本文会尝试介绍一些个人认为比较实用的功能进行介绍,希望能让各位产生兴趣。
标准模式(Normal mode)
标准模式是 Vim 中的默认模式。大部分操作都需要在标准模式下完成。在 Surfingkeys 中也是如此,在标准模式下可以通过 j/k
或者 d/u
上下滚动,通过h/l
来左右滚动。当然常用的 gg/G
这种操作也都支持。完整的快捷键列表如下(可通过 ?
呼出):
在标准模式下,可以通过 f
来打开超链接,用 F
来在新标签页后台打开。按下 f
后,会在超链接处展示提示符,通过键入相应提示符这点和 Vimium 等其他类似扩展行为一致。但有两点需要注意:
- Surfingkeys 默认会把提示词显示在超链接的中央位置。可以通过设置配置
settings.hintAlign = "left";
来修改提示词的展示位置。 - 默认提示符是「适合左手」,即提示符会从
asdfgqwertzxcvb
中选择字母进行组合,这让你可以只用左手来完成网页的浏览。当然你也可以修改配置Hints.characters = 'yuiophjklnm';
来换成「适合右手」。
可视化模式(visual mode)
Surfingkeys 还提供了可视化模式。在 Vim 中的可视化模式,可以通过移动光标来选中内容,Surfingkeys 也有同样的效果。和访问超链接一样,在按下 v
之后,会出现很多提示符,输入锚点对应的标记,在相应位置就会出现光标。此时你可以通过 Vim 快捷键来移动光标。再次按下 v,则光标的移动范围都会被选中,和鼠标圈选的效果一致。
对于选中的内容,可以通过 y
来复制到剪贴板,也可以进行其他操作。比如通过 sg
或 sb
来使用 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 进行搜索。如果输入内容后直接确定,则会使用默认搜索引擎进行搜索。
- 管理/搜索收藏夹 通过
b
可打在 Omnibar 中打开收藏夹。在这里可以访问/管理收藏夹的内容。具体操作请参考 Surfingkeys 的 Github 页面。
前往标签
上图演示了在按下 T
后会触发的两种行为:
- 在标签数不多于
N
时,会在页面顶端出现标签页的提示符(和超链接的操作相同)。通过输入提示符可跳转到目标标签页。 - 在标签数多于
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官方店铺 🛒