作为一个vim的忠实粉丝,vimperator从一出现就吸引了我的目光
遥想当年,Martin Stubenschrott写了一个vim的插件,icomplete,当时我还很看好这个插件,满心期待它能完善强大起来,成为Source Insight级别的强大工具,不想后来他说他不维护了,让用户改用OmniCppComplete,说他去捣鼓firefox去了,顿时感到很失望过了大概一年之后,第一次试用了vimperator,发现除了hjkl之外,没啥像vim的地方,而且bug多多,所以随便使用了了一下就删掉了又过了三年,vimperator版本号也从0.2跳到了2.3.1, 忍不住又试用了一次,发现眼前一亮,完完全全的脱胎换骨啊。如果说以前的vimperator是Firefox里对vim按键的简单模拟,现在的vimperator已经是基于Firefox平台的完整的vim前端,总有人问emacs里可以用w3m来浏览网页,vim里该怎么浏览网页?vimperator就是答案,只是换了种思路:不是用vim实现浏览器,而是用浏览器实现vim!vimperator继承了vim的所有优点:支持插件,支持事件,支持自定义按键,支持rc文件……默认设置基本上已经可以基本满足要求,只是因为我的vim已经被改造伏贴,伺候了我很多年了,习惯所迫,也得把vimperator稍微改造一下:google reader和gmail里已有的快捷键跟vimperator冲突,所以在这些网站,启用pass through模式,将快捷键传递给网页,如果需要vimperator来解释这些按键怎么办?很简单,<Esc>autocmd LocationChange .* :js modes.passAllKeys = /mail\.google\.com/.test(buffer.URL) || /google\.com\/reader\//.test(buffer.URL)还是要向习惯屈服,毕竟大部分地方都是ctrl-c复制,ctrl-a全选,因为所有模式都可能用到,所以用map应用到所有模式noremap <c-c> <c-v><c-c>noremap <C-a> <C-v><C-a>感觉gT按起来不顺手,所以改成Alt-h,l来切换标签页:nnoremap <A-h> gTnnoremap <A-l> gtcommand模式下,用ctrl-n和ctrl-p来调用前后的命令,让我双手离开主键盘区去找箭头键,算了吧……cnoremap <C-p> <Up>cnoremap <C-n> <Down>输入网址的时候,忽然改变注意了想用google搜索,ctrl-k居然不起作用了,改之!inoremap <C-k> <Esc><C-k>ctrl-v,x只在文本编辑的时候有用,所以限制一下应用范围,仅用于插入模式inoremap <C-v> <C-v><C-v>inoremap <C-x> <C-v><C-x>最后提醒一下,修改了_vimperatorrc之后,怎样才能起效?:so ~/_vimperatorrc