宏伟的 Vimlike.js 计划

一直在想:网站本身提供的快捷键支持(如 Gmail, GReader, Gplus, Twitter), 和浏览器插件提供的通用快捷键支持(Vimperator, Vimium, ...),两者如何共存, 相互之间能够相安无事,甚至能够相辅相成?

目前想到两种方案:

  1. 白名单机制。像 AutoProxy 一样,针对不同的网站/网址,屏蔽某些键映射, 使用官方自有映射支持。不过这个要维护这份列表也是一件蛋疼的事。
  2. 网站根据统一约定的快捷键定义接口实现特有功能,非特有的则默认使用共有实现。 另外也提供扩展机制,让第三方插件也可以根据这个接口为特定的网站/页面实现特定功能。

个人觉得第 2 中方案比较好,但这是一项宏大的项目,要各个网站遵循这个接口标准来实现, 不是一件易事。准备先把这个做到 [https://github.com/hotoo/vimlike.js Vimlike.js] 项目里, 然后请一些 Vim 爱好者的个人博客一起来参与实践。

Help
[count]gg 跳转到第 [count] 行,默认第 1 行。
[count]G 跳转到第 [count] 行,默认最后一行。
[count]j 向下跳转 [count] 行,默认跳转一行。
[count]k 向上跳转 [count] 行,默认跳转一行。
/ 开始搜索。按 <Esc> 退出。
gh 跳转到首页。
gb 跳转到博客首页。
gw 跳转到 Wiki 首页。
gt 跳转到我的 Twitter Profile 页。
gp 跳转到我的 Github Profile 页。
? 打开帮助。按 <Esc> 退出。