Vimperator是Firefox的一个非常活跃的插件,它的主要特征是全面模仿Vim,也就是把firefox变成了带有模式的浏览器。
对于极客来讲,顺滑的操作、简约的外观、阅读空间的最大化、宏、自定义、命令行什么的最有吸引力了。这也就是我开始玩Vim时的感觉——这玩意什么工具栏、菜单栏一概没有,就是一个光秃秃的窗口,但是却能通过模式获得巨大的力量。
此次研究Vimperator也是受到超Vim控·王威拓同学的启发而进行的,研究了一段时间却发现已经不能自拔。在这09年快要结束的时候,Vimperator业已成为我的年度最佳软件。
作为一个不是那么熟练的Vim爱好者,在没有完全适应它的操作风格时,我更倾向于使用我用了十多年的粘贴,剪切,全选,undo快捷键,于是就研究了vimperatorrc。
我把这个firefox做成了类似于Vim里 ":set go=" 的风格,以及做了些适合我的快捷键修改,然后记录在了下面
1.相关的主题和插件
主题我选择了whitehart,这个主题最大的特点就是简单,非常非常简单。
另外,为了使状态栏图标只有Gmail Manager,我又安装了一个Organize Status Bar
2.最大可能地精简浏览器元素
Vimperator把菜单栏,工具栏,浏览栏什么的全部隐藏了,但是对标签栏的精简它还做得不够。
为此,我研究了user-Chrome.css,这个文件在Windows7的环境下,位于
<SystemDisk>\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\<code>\chrome
里。
我在这个文件的结末,加入了如下代码
.tabbrowser-tabs .tabs-newtab-button,
{
display: none !important;
}
这些代码把“新建标签按钮”隐藏了。
另外,在about:config中,找到如下字段:
browser.tab.closeButtons
并且把它的值设为2,标签上的关闭标签按钮就被隐藏了。
另外,关于这个字段的值,有这样的意义:
0:仅在活动的标签页上显示关闭按钮
1:在所有的标签页上显示关闭按钮
2:不显示任何的关闭按钮
3:在当前所有标签页的最后显示一个关闭按钮
现在我们已经得到一个 ":set go=" 风格的界面了。
3.我的vimperatorrc
vimperatorrc是Vimperator的配置文件。啃完了:help之后,我做了一个比较适合自己的vimperatorrc。
需要解释的是:
- noremap是无递归地改变键位,也就是按照初始键位来表达新的键位,哪怕初始键位被改变了也可以表达原有的功能。
- inoremap是在输入模式下,与noremap相同的功能。
- cnoremap是在控制台模式下,与noremap相同的功能。
"在标签上显示数字,方便使用b+<num>来选择特定标签
:set guioptions=rbN"更舒服的缩放键,用=代替+
noremap = +"更舒服的导航键,h后退l前进
map h :back<CR>
map l :forward<CR>"用q关闭
noremap Q q
inoremap Q q
cnoremap Q q
map q :qall<CR>"恢复ctrl+b管理书签
noremap <C-b> <C-v><C-b>
inoremap <C-b> <C-v><C-b>
cnoremap <C-b> <C-v><C-b>"改变标签,n前一个m后一个
noremap n <C-p>
noremap m <C-n>"使用p代替n的“查找下一个”功能
noremap p n"5倍速的jk滚屏
noremap j 5j
noremap k 5k"停止载入改成了s
map s :stop<CR>"使用a代替A的收藏状态控制
noremap a A"使用<C-V>代替<C-v>的暂停Vimperator监听
noremap <C-V> <C-v>
inoremap <C-V> <C-v>
cnoremap <C-V> <C-v>"使用<C-Z>代替<C-z>的停止Vimperator监听
noremap <C-Z> <C-z>
inoremap <C-Z> <C-z>
cnoremap <C-Z> <C-z>"使用<C-o>和<C-i>在URL的末尾数加1
noremap <C-o> <C-a>
noremap <C-i> <C-x>"使用Windows风格的undo,复制,粘贴,剪切,全选操作
noremap <C-z> <C-v><C-z>
inoremap <C-z> <C-v><C-z>
cnoremap <C-z> <C-v><C-z>noremap <C-v> <C-v><C-v>
inoremap <C-v> <C-v><C-v>
cnoremap <C-v> <C-v><C-v>noremap <C-x> <C-v><C-x>
inoremap <C-x> <C-v><C-x>
cnoremap <C-x> <C-v><C-x>noremap <C-a> <C-v><C-a>
cnoremap <C-a> <C-v><C-a>
inoremap <C-a> <C-v><C-a>noremap <C-c> <C-v><C-c>
cnoremap <C-c> <C-v><C-c>
inoremap <C-c> <C-v><C-c>
这些就是我的Vimperator键位设置,它让我的Vimperator操作更流畅。
综上,就是我近期对Vimperator的研究。另外还有正在做的Vimperator帮助文件的翻译。
你说这篇文章看的人会有多少呢?
浏览量还不错,Google analytics告诉我们,这篇文章从发布到现在已有30人看过
30人,加一块儿还没有我们班人多呢
也行了,都是Google来的,总比没有强
该死的墙奸!
您的那个去除“新建标签按钮”的方法已经不能用了,我用的这个:把导航栏各种无用的都去了
.tabbrowser-tabs .tabs-alltabs-button,
.tabbrowser-tabs .tabs-alltabs-box-animate,
.tabbrowser-tabs .tabs-newtab-button,
.tabbrowser-tabs .tabs-closebutton {display: none !important;}
是吗,哈哈,我明儿试一试。我已经不用Vimperator了,现在回到Chrome的怀抱里了因为有了Switchy Proxy
看起来不错
有个问题,如果把h,l变成了前一个标签和后一个标签,则在visual模式下就无法使用h和l向前选择和向后选择了。请问这个该怎么处理呢?
好像就得换个绑定了。不过visual模式下的键位似乎也可以重新绑定,这个得再看看vimperator的文档
多谢提醒,引用链接已经更新。
学习了~ 呵呵
从佳软那里过来的