在Chrome中使用Vim(Surfingkeys)

引言

Surfingkeys是Chrome下的一个仿Vim式快捷键的插件,之前在Chrome下一直使用的是Vimium,最近使用国人开发的Surfingkeys后发现功能和用户体验上都要比Vimium强大很多倍,下面我就分享一下自己使用的心得,即使是之前没有接触过Vim的朋友也可以考虑上手一下这款插件,用熟练之后几乎可以完全放弃鼠标和触摸板了。

同时对于大部分人想学习Vim的朋友而言,可能在初期因为陡峭的学习曲线所以很快就放弃了,我认为也可以用Surfingkeys作为一个跳板,在Chrome下面通过大量的实践来将常见的快捷键用熟。

基础快捷键

Surfingkeys下载地址 -> 传送门 (要翻墙)

第一次接触Surfingkeys的朋友,唯一需要记住的快捷键就是?,使用?可以调所有快捷键的说明,对于这些众多的快捷键没有必要去死记硬背,有需求但是忘记快捷键的时候再利用?翻阅:

首先我们来看一下四个日常中使用最频繁的快捷键,记住了这四个快捷键鼠标滚轮基本可以弃用了:

  1. kj分别代表向上移动和向下移动,相当于方向键。
  2. ed分别代表向上翻页和向下翻半页。

对于网页中的link或者button,以前我们都是通过鼠标左键去点击,通过使用Surfingkeys,我们只需要直接使用输入f就可以了,就会出现如下的页面:

然后输入link或者button对应的字母组合就可以跳转,默认在同一个tab中会打开新的网页,如果我们想在一个新的tab打开网页,可以改成使用af,或者通过gf在后台打开。

敲击t可以打开一个全局的搜索框,可以搜索bookmark和history,如果没有对应的匹配项,Surfingkeys则会调用google帮我们在网上搜索。

另外两个使用非常频繁的快捷键是大写的SD,相当于Chrome左上角的history之间的切换。对于第一次接触Vim的朋友而言,下面的内容可以忽视了,在开始阶段只需要通过反复使用将上面十个快捷键用熟练就行了,然后可以结合鼠标慢慢过渡。

标签页之间的切换

通过使用大写的ER我们可以移动至左边或者右边的TAB,但是这样的话如果我们打开了多个标签页的话,这样切换效率是极低的,我们可以通过使用大写的T就可以调出和f相似的页面,输入标签页对应的字母我们就可以快速跳转到指定的标签页。

如果我们想关闭当前标签页,敲击x即可(等价于Chrome默认的Ctrl-W),如果我们后悔刚刚关闭的标签页,使用大写的X即可恢复上一个关闭的标签页(等价于Chrome默认的Ctrl-Shift-T)。

关于更多的标签页之间的切换操作,比如使用<<或者>>可以将当前标签页左移或者右移,大家都可以使用?查看对应的文档说明,大部分时候上面提及的五个操作都可以满足我们的需求。

查找

通过使用/来在当dee前网页中查找搜索指定的内容,如果出现了多个匹配项的话,可以通过n定位到下一项,N定位到上一项。这比Chrome默认的Ctrl-F要舒服很多。

同时除了我们上面提及的使用t来全局搜索之外,也可以使用敲击b只在书签中进行搜索,这里搜索并不只是简单的搜索,可以非常方便的在子目录下面进行切换,大家使用之后就明白了,用户体验非常好。

另外一个值得提及的功能就是有时候我们会在其他应用中复制了一些文字或者url然后回到chrome中进行粘贴,利用Sufingkeys我们可以在复制之后直接敲击sg直接谷歌搜索省去用鼠标paste then search的步骤,如果复制的是url的话可以敲击cc

截屏

利用Sufingkeys提供的几个快捷键,我们可以非常快速的截屏,使用yg可以捕捉当前屏幕,而使用yG则可以捕获整个屏幕(包括滚动的部分)。

markdown预览

利用Sufingkeys我们可以预览剪切板中的markdown文字,只需要在复制完markdown文字之后在chrome中敲击sm即可。跳转到预览页面时候,不仅仅可以预览markdown的渲染效果,而且也可以像使用vim编辑器一样对文本进行实时编辑。

编辑模式

使用I进入插入模式,我们可以像使用Vim一样编辑当前网页的input或者textarea标签中的内容:

敲击su可以弹出来一个url编辑栏,可以编辑当前的url:

设置书签

有时候浏览网页的时候,我们经常需要在一个网页中不同的地方来回切换,通过鼠标来滚动太低效了,一来一回思路容易被打断。这个时候可以考虑使用surfingkeys提供的mark功能,我们可以先敲击m,然后后面任意接一个字母,以后我们想回到敲击m的这个位置,只需要敲击'(单引号)加上面接的那个字母就可以跳转到上一次做标记的地方,这个功能我用的很多,阅读长文时体验非常好。

选择模式

熟悉Vim的朋友都知道,和Emacs不同Vim的哲学是通过集成若干个模式来提供众多的快捷模式的,比如insert mode, command mode, visual mode, normal mode。如果不理解这些原理也没有关系,只需要记住这些快捷键就行了。

比如在一个网页中我想选取一段文字,完全没有必要使用鼠标去选取。首先输入v进入如下的模式(即visual mode)定位到大致要选取的段落:

大致定位之后可以继续使用kjhl分别对光标进行上下左右的移动,或者通过web在word之间移动,精准的定位之后再次敲击v然后通过kjhl移动光标来选则文字即可就会出现下图这样的效果:

p.s: kjhl分别代表上下左右移动光标。

Contact

GitHub: https://github.com/ziwenxie
Blog: https://www.ziwenxie.site