一直在想:网站本身提供的快捷键支持(如 Gmail, GReader, Gplus, Twitter), 和浏览器插件提供的通用快捷键支持(Vimperator, Vimium, ...),两者如何共存, 相互之间能够相安无事,甚至能够相辅相成?
目前想到两种方案:
- 白名单机制。像 AutoProxy 一样,针对不同的网站/网址,屏蔽某些键映射, 使用官方自有映射支持。不过这个要维护这份列表也是一件蛋疼的事。
- 网站根据统一约定的快捷键定义接口实现特有功能,非特有的则默认使用共有实现。 另外也提供扩展机制,让第三方插件也可以根据这个接口为特定的网站/页面实现特定功能。
个人觉得第 2 中方案比较好,但这是一项宏大的项目,要各个网站遵循这个接口标准来实现, 不是一件易事。准备先把这个做到 [https://github.com/hotoo/vimlike.js Vimlike.js] 项目里, 然后请一些 Vim 爱好者的个人博客一起来参与实践。