Pentadactyl/Vimperator:VIM化的Firefox

VimperatorVimperator 是让 Firefox 拥有模式、纯键盘操作、等 Vim 风格的强大扩展。本文源于tc网友的投稿,此后增加了善用佳软短期的使用笔记等内容。提醒:感兴趣的新用户,可直接选用功能更强大的 Pentadactyl分支 代替 原Vimperator!

【目录】
第一部分:tc网友关于VIMperator的投稿:
  一、入门篇Hint模式命令行可视模式
  二、高级篇;的使用配置文件快捷键更改进一步提高更多资源
第二部分:善用佳软的VIMperator使用笔记:
  一、安装 
  二、我使用的Vimperator功能及设置t打开网址屏幕缩放复制相关Gmail与Greader中屏蔽几个自定义快捷键其他
  三、关于Vimperator中默认编辑设定
第三部分:最新的Pentadactyl分支
第四部分:让更多程序拥有vim风格

Vimperator/Pentadactyl是Mozilla Firefox的一个扩展,它为喜欢使用键盘的用户提供了类似于Vim的用户界面。它和Vim一样,有着较陡的学习曲线。Vimperator最独特的是不需要鼠标, 这是因为它有所谓的Hint模式、带自动补全的命令行,以及帮助系统。

一、入门篇

1. Hint模式 (Vimperator hint mode)

Vimperator的hints允许用户实现通常需要鼠标来完成的动作。在此模式中,所有能被点击的网页元素会被编号,用户可以通过输入编号或者链接中的文字来选择。一旦一个元素被选择,就会执行一个操作(如点击、选择、复制链接地址等)。具体执行什么操作由用户如何进入Hint模式决定。

f(F) hints模式最为重要的一个键可以让你快速打开一个链接.
* h,j,k,l 这个熟悉vi的都不用介绍了,导航键
* H,L 前进后退键
* Ctrl+n 下一个tab
* Ctrl+p 上一个tab
* Ctrl+6 前后两个tab切换
* o url 在当前tab打开url
* o 关键字 用浏览器的缺省搜索引擎搜索关键字(用当前tab)
* t url 在新tab打开url
* t 关键字 用浏览器的缺省搜索引擎搜索关键字(用新tab)
* / 在当前页面搜索
* d 关闭当前tab
* u 重新打开之前关闭的tab
* zi 页面放大
* zo 页面缩小
* zz 恢复页面大小

2. 命令行

Vimperator的大多数功能通过窗口底部类似Vim的命令行来完成。像在Vim中一样,所有的命令以“:”开始。当用户输入 “:”,Vimperator就进入“命令行模式”。常用的命令如下

:help [主题] – 提供与[主题]相关的帮助
:open [地址] – 在当前标签打开[地址],地址可以是文件、书签的关键字、或者用搜索引擎搜索。
:back 和 :forward – 根据历史记录后退和前进。
:bmark [地址] – 创建书签。
:echo [表达式] – 以JavaScript的形式运算[表达式]并显示结果。
:set[!] … – 显示或修改Vimperator和Firefox的设置。
:map – 创建、修改键盘快捷键

3. 可视模式

vimperator的可视模式,就是按i进入,然后可以用h k l j 等进行位置的确定.然后可以进行特定段落的复制等操作.
具体的键盘操作可以参看帮助就是按F1或者在命令行下输入:help [返回目录]

二、高级篇

主要着重说明一些用vimperator可能不被注意的功能

1. ;的使用

(注:2.2版本有一些功能才被加入)
估计有好多的vimperator选手没有注意到这个键的用法.
具体的参看说明
举例;i
当按下这两个键时, 就相当于查看图片的选项,你可以在页面打开本面的任何一张图.
进行仔细的查看.
再一例;;
此项功能相当于正常模式下的f.即hint模式.可以快速找到需要的链接并打开.
进行查看

2.配置文件的使用

vimperator也如vim一样也是可以进行配置的.也有配置文件在在user文件夹下面.名称为_vimperatorrc

下面共享自己的配置.都是在网上找的.郑重感谢原作者

“surround com and net可以直接先输入网站名,再用<CTRL>+<ENTER>快捷输入.com/.net

cnoremap<S-Return> <End>.org<Home><C-Right>www.<CR>
cnoremap<C-Return> <End>.com<Home><C-Right>www.<CR>
“Next Page and Previous Page超级的下一页,基本上是够用了.快捷键是[[和]]
set nextpattern=\s*下一页|下一张|下一篇|下页|后页\s*,^\bnext\b,\\bnext\\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\\bmore\\b
set previouspattern=\s*上一页|上一张|上一篇|上页|前页\s*,^\bprev|previous\b,\\bprev|previous\\b,^<$,^(<<|«)$,^(<|«),(<|«)$
” 此项功能是自动补全.在命令行下的自动补全.
set wop=auto
“命令行下拉菜单最多显示的条目数

set maxitems=6
“Look up the word you selected in dict.cn在dict.cn中查找所选词的英语
command! dict -nargs=* tabopen http://dict.cn/<args>
map w :dict
map <silent> W :exe “:dict “+content.getSelection()<CR>

js <<EOF
// Toggle Tool bar
liberator.globalVariables[‘sx_gopt’] = ‘T’
toggle_bar = function () {
toggle_status = liberator.globalVariables[‘sx_gopt’];
liberator.globalVariables[‘sx_gopt’] = (toggle_status == ”? ‘T’: ”);
liberator.execute(‘set guioptions=’ + toggle_status);
}
// Wiki Selected Text
wiki_selected_text = function () {
str = buffer.getCurrentWord()
liberator.execute(‘tabopen wikipedia ‘ + str);
}
EOF
” map to js functions F2来显示隐藏工具栏;用<C-W>来在wiki中查看词条.

map <silent> <F2> :js toggle_bar() <CR>
map <C-w> :js wiki_selected_text() <CR>

3. 快捷键的更改问题

对于一些快捷键,你可能觉得并不习惯,也可能觉得并不快捷.在vimperator下面都是可以进行更改的.
具体的方法如下(以下摘抄自网上,原地址是这里:http://pchu.blogbus.com/logs/32923406.html)
举例说明:
比如想要把翻页的的按键用JK来代替,可以如下定义(如果是写在配置文件里面,要把前面的”:”去掉才可以.直接在命令行下生效的话就要加上”:”的.
:map J <C-d> (回车)
:map K <C-u> (回车)
还比如.超级下一页的]]和[[不太好用.因为要按两次。我们可以这样设置
:map ] ]]
:map [ [[
再比如,在 vimperator下面你发现<C-c>和<C-V>是不管用的.那么怎么办呢?我们要如下设定就可以了,因为在vimperator下面.这两个快捷键是有另外用处,所以,可以这样做
noremap <C-c> <C-v><C-c>
noremap <C-a> <C-v><C-a>
cnoremap <C-c> <C-v><C-c>
cnoremap <C-v> <C-v><C-v>
cnoremap <C-x> <C-v><C-x>
inoremap <C-a> <C-v><C-a>
inoremap <C-c> <C-v><C-c>
inoremap <C-v> <C-v><C-v>
inoremap <C-x> <C-v><C-x>
inoremap <C-z> <C-v><C-z>
inoremap <C-y> <C-v><C-y>
这样子,你就会发现就可以正常用<C- c>和<C-V>了. [返回目录]

4. 再次提高vimperator的使用方法.

方法1.订阅新闻组
  vimperator@mozdev.org 这个是英语的.里面好东西不好,作者经常和用户进行交流,有什么疑问可以到这里提问.
方法2.观注几个博客 
  http://pchu.blogbus.com/ 主要是vimperator脚本的配置问题,很仔细,也很详细
  http://luoxiqofy.blogbus.com/ 这里主要是vimperator的脚本使用和配色问题.
  里面有几个文章,非常详细地介绍到了怎么把hints从数字替换成汉语拼音的方式.

5. 附另外的一些资源

vimperator的最新版本在google code上
http://code.google.com/p/vimperator-labs/downloads/list
vimperator也是支持插件的
http://code.google.com/p/vimperator-labs/issues/list
当然也是有主题的
http://code.google.com/p/vimperator-labs/issues/list?can=2&q=label:project-vimperator+label:type-colorscheme
可惜的就是,很久不更新了.基本上都还可以,这一点比较让人高兴.
vimperator入手不太容易.但是就如vim一样,学习难度都有点大.正所谓好东西.是值得
为了使用它而投入学习时间的.

vimperator的说明文档如同vim的说明一样,都是详细.同样可惜的是,也都是英语的.
曾经有人尝试把vimperator的2.0翻译成了汉语.可以参考
http://code.google.com/p/cvimp/
只不过没有最新的2.2
http://code.google.com/p/pinyin-hints-vimperator/
在vimperator这个扩展的hint模式中可以通过拼音首字母过滤中文链接.例如希望打开链接“论坛”,可以在vimperator按f/F进入hint模式,然后输入lt(拼音 l un t an),便会过滤出“论坛”以及其他类似内容。再比如“vimperator修改版”,可以输入xgb或者 vimperatorxgb或者vim空格 xgb(当然,通常你不要输入这么多字母,可能输入xg后链接就打开了)。 [返回目录]

附1:善用佳软的Vimperator使用笔记

  说明:我经常访问的网站只有三五个,对浏览器的要求并不高。所以,Vimperator的实际使用时间极短。2007年4月试用过几天,2010年初从Chrome回到Firefox后,又试用过一两周,并记录如下。
VimperatorVimperator是Firefox的一款扩展,它让Firefox看起来、用起来都象是VIM。你甚至可以说,有了它,Firefox变成了有模式的浏览器,完全可以纯键盘高效操作。

一、Vimperator安装

  用Firefox访问这里即可安装。当前(2010-02-18)版本v2.2,适用于Firefox: 3.5 – 3.6.*。

二、我使用的Vimperator功能及设置

  有些采用了默认设置,有些进行了个性化定义(c:\Documents and Settings\zyx\_vimperatorrc)。

t:tabopen 在新标签打开网址

  自定义如下,以实现键入”,tm”(不包括引号,共3个按键)打开gmail等常用网址。

noremap <leader>tm :tabopen mail.google.com<CR>
noremap <leader>tr :tabopen www.google.com/reader<CR>
noremap <leader>tx :tabopen xbeta.info<CR>
noremap <leader>te :tabopen xbeta.info/wp-admin<CR>

屏幕缩放

  +/- 可实现缩放(?Firefox还是Vimperator?)。这也是我的选择。
  如果认为 + 需要同时按下shift和=太复杂,可“noremap = +”。
  Vimperator默认的zi、zo也可以缩放(zoom in, zoom out)。

复制相关

  默认的设定(y: 复制当前页的url到剪贴板。Y:复制选中文字到剪贴板)很不合理,应该交换一下。如下配置竟能生效。
noremap y Y
noremap Y y

在Gmail和Greader中屏蔽Vimperator

  如下设定用来在gmail和greader中保持pass through模式,即Vimperator不要接管按键,直接传给gmail、greader。其实,也可不做设定,手工用 ctrl-z 进入 pass through 模式。
autocmd LocationChange .* :js modes.passAllKeys = /mail\.google\.com/.test(buffer.URL) || /google\.com\/reader\//.test(buffer.URL)

方便折腾与兼顾实用的自定义快捷键

  修改配置文件后,键入,s即时生效。
map ,s :so “c:/Documents and Settings/zyx/_vimperatorrc”<CR>

  在有无菜单、地址栏之间切换:
  map <C-Up> :se go=mnT<CR>
map <C-Down> :se go=n<CR>:

其他

  gf:查看页面源代码。
  h/l:由于默认左右移动功能很少用到,所以,重新映射为前/后标签页。noremap h gT,noremap l gt。

  其他功能也会用,但用得不多 [返回目录]

三、关于Vimperator的编辑器设定

  我选用Vimperator,最初只是用来代替It’s All Text扩展。现在的设定是 se editor=”d:/soft/Vim/vim72/gvim.exe -f” 。按下ctrl+i,直接在vim中编辑当前文本框内容。美中不足的是,默认文件名是 .tmp,暂时未找到设定为 .htm的方式。网友提到,可以在 vimperator@mozdev.org\chrome\vimperator.jar 中修改 common\content\editor.js,但我没找到相关设置。

1. 路径分割符的斜线方向

  善用佳软(2010-02-17,winxp-sp2, gvim 7.2, VIMperator 2.2)实验结果:用斜线作路径分割符。
  windows中标准路径为反斜线:如 d:\soft\Vim\vim72\gvim.exe
  但无论 _vimperatorrc 文件,还是临时设定(即直接在Firefox中进入命令行,键入命令),必须把反斜线(\)改为斜线(/)。

2. 路径中的空格

  如果路径含空格,必须写为dos 8.3式的短路径,比如 :se editor=”C:/Progra~1/vim/vim72/gvim.exe -f”。(NONAME、hi_lucky 于 2010-02-14)
  把反斜杠换成四个反斜杠,空格换成两个反斜杠一个空格……最新版 Vimp测试成功(1wingedangel 于 2010-02-14)

3. 把gvim.exe目录加入系统路径

  其实,Vimperator已默认设置为 editor=gvim.exe -f。因此,只要把gvim.exe所在的目录,加入系统变量path即可(或许要重启动)。也可以尝试一下 :se editor=notepad.exe 来间接验证此方法的可行性。

4. 关于 -f 参数

  详见vim中 :h -f。这样做就必须打开一个新的gvim.exe,以供Vimperator监控编辑工作是否完成。缺点是启动新gvim速度较慢。而 It’s All Text扩展则是通过监控临时文件来实现更新,可以利用已运行的gvim程序,更优一些。

5. 关于文件类型

  我习惯用gvim来发表博客,直接写html源代码。这时,按下ctrl+i后,希望能自动设定ft=html。而Vimperator并无此设置。有网友提到,可以修改源代码,这超出了我的能力范围。后来在vimrc文件中增加了如下语句,默认为html:
  au BufRead,BufNewFile vimperator-*.tmp setlocal ft=html
[返回目录]

附2: Pentadactyl: Vimperator的替代者

Vimperator是开源软件,因此,大家都可以参与开发和改进,也可以形成新的分支。Pentadactyl 是由 Vimperator 项目最活跃的开发者 kmaglione、dkearns 维护的分支。它针对 Firefox4,利用新的js引擎加速,所以,性能方面比 Vimperator 有了显著改进。按官方的说法,号称启动速度提升了 7 倍。其他改进之处包括:默认隐藏命令行、改进隐私模式 :sanitize 支持、更快速的前后向渐进搜索、用 | 分割多条外部命令。更多改进参见这里

相关链接:

Pentadactyl 在 Firefox Add-on 页面
官方网站

从Firefox到Thunderbird及Songbird

另外,Dactyl 项目的目标可不局限于Firefox,而是所有的 Gecko 应用,也包括 Thunderbird 和 Songbird 。Dactyl 项目的总目标是让这些优秀的程序更加高效、舒适。其中,用于 Thunderbird 的 Teledactyl 项目已发布了 alpha 版本。

开发团队称,Dactyl 项目的灵感、动力主要来自 Vim, Links, Lynx, mutt, cmus, Emacs, Conkeror 等可敬的 UNIX 应用,以及它们的开发者、用户,是它们指引着 pentadactyl 的方向。

用户评价:

Vimperator的作者之一Kris Maglione,也是vimperator-labs上面维护plugins最多的人,突然在上面宣布他所有的插件全部移至另外某处host。遂移步前去。看页面最下:Kris Maglione, Doug Kearns, Martin Stubenschrott,其中两个都是Vimperator原版人马。就冲这点,我等Vimperator众就该战栗了。我顿时毫不犹豫装上一试,用最新版的1.0 beta3已经完美运行起来了,而且相比Vimperator真的改进很大。

我今天使用了一天 Pentadactyl 1.0 beta 3。我觉得是,Vimperator老用户5分钟适应的同时,会发现,细节之处改进颇多: 自动补全的速度提高不少;让我爱不释手的全新命令行和状态栏结合体;更多有用的选项等等。

突然发现这个在firefox4里比vimperator要好用。ps:作者很给力。[via 豆瓣小组 fwoncn、 IK]

Pentadactyl与Vimperator之间的选择

从未来发展来看,显然Pentadactyl的发展空间更大。但与目前的扩展兼容性方面,Pentadactyl还有不足。
– 新用户:如果此前未用过它们,可直接使用Pentadactyl 。用 Firefox4 者尤其推荐。
– 不再折腾的 Vimperator 用户:无须更换。“那个只针对ff4的,利用新的js引擎进行加速所以很快,而且也支持panorama分组。但是设置需要改动很多并且大部分的扩展都不能用了,另外FF4目前还没有正式发布,我觉得不用赶这个时髦” [via @???]
– 喜欢折腾的:大胆去试、去比较吧!

附:让更多程序拥有vim风格

Vim 不仅界定了文本编辑器的高标准,而且开创了键盘操作风:hijk…… 让无数英雄竞折腰!于是产生了如下作品:
Muttator:由 Vimperator 作者开发的 Thunderbird Vim 风格扩展。不仅实现了 Vim 风格,还继承了 Linux 下传奇文本邮件客户端 Mutt 的精髓。
– 在Visual Studio、Eclipse、Netbeans IDE、JetBrains PhpStorm、Chrome 等环境下实现Vim操作:参见 用vim的方式操作你的软件,文中最后还提到了一款通用的ahk脚本 vim-mode,在多数程序中实现vim操作模式。 另可参见 用VIM的方式去浏览互联网
viatc:让强大高效的TC,也拥有Vim的便捷操作。作者是国内网友linxinhong,制作工具也是AutoHotkey。

附:扩展阅读

  vimfox.info: Vimperator的中文大本营 推荐!!!
  玩酷的vimperator教程
  Vimperator —— 用键盘畅游网络
  Vimperator 快速指南|官方tutorial.html翻译
  使用Vimperator制作超简约风格的Firefox

附:文章更新历史

  2012-05-16:补充第4部分 让更多程序拥有vim风格
  2010-11-15:补充 Pentadactyl;补充 vimfox.info 。
  2010-03-20:收入tc网友的投稿,并作为主文发布;自己的笔记作为附录。
  2010-02-23:部分更新。
  2010-02-18:从Chrome换回Firefox,受网友鼓动,重新启用更新后的VIMperator。
  2007-04-16: 初稿,只是试用,并未实用。>

《Pentadactyl/Vimperator:VIM化的Firefox》有158个想法

  1. xbeta说有很多地方还是离不开鼠标;所以禁用掉了。
    现在vimperator 2.1了;功能也更完善了。
    :pref 打开选项;
    :addons 打开插件控制窗口;
    map 设置键盘映射;
    mkv可以保存当前设置;
    设好了搜索引擎的关键字后调用各种引擎来搜索可用(这里我设置google的搜索关键字为ggl):t ggl 要搜索的内容;
    同时 :! 命令 也还是可以执行命令行的;ping个网址还是可以的,
    f 用数字顺序标记所有可用链接或输入框;
    在输入框内可以ctrl+i来用外部编辑器编辑内容(一般都用vim的吧),:wq保存退出后内容就会自动填入该输入框;
    :ls 可以列出当前的标签页;
    ctrl+n(n为数字)可以切换标签页;
    set guioptions=n 可以在标签页的图标右侧显示该标签页的序号;
    还有,界面也更接近vim了。firefox3里至少是这样。虽然现在有定义colorscheme的功能,但似乎缺少对应的scheme。
    综上所述,不知道xbeta现在怎么看Vimperator。

    1. 搜索引擎关键字不需要这个扩展也可以自由使用。
      而且关键字越短越好,尽量以单个或两个字母作为关键字。我的50多个搜索几乎全部只有2个以下的关键字。google,yahoo,baidu这样一个首字母就可以代表了。一些中文的或者复数单词的可以用复数字母,比如youtube- yt,verycd – vc,射手网-ss,方便记忆又高效。

  2. 我上次在firefox的那篇文章评论上提到过,可以使用Autocommand功能来制定转进特定的网站自动运行一个命令(help上有),然后运行一个vim后面加入filetype的参数即可。

  3. firefox下最喜欢的扩展就是这个了,d关闭标签页非常方便,把w和e映射成了上下标签页,hjkl用起来非常顺手,这个扩展也是我一直没转到chrome上的最主要的原因

  4. 我用了vimperator有一段时间了,不过主贴讲的功能一直没有实现。
    我的vim的位置是c:Program FilesVimvim72gvim.exe
    设置:se editor=”c:Program FilesVimvim72gvim.exe -f”以后,在文本框中ctrl+i,提示command not found:c:program
    有高手可以指点一下吗?
    善用佳软:把路径中的反斜线改为斜线再试一下。

    1. 这个是个bug。也经过确认了。vim路径不能在有空格的目录。!比如说programm file就不行。
      关于vimperator问题在网络方便的时候会向佳软投稿。

    2. 谢谢。
      按善用佳软提示,输入:
      :se editor=”c:/Program Files/Vim/vim72/gvim.exe -f
      系统返回:E518:Unknown option:Files/vim/vim72/gvim.exe,没有成功。

  5. 我也是爱上这个扩展的浏览功能。在flash里上下左右不能用,比如163直播聊天室。我现在把opera也设置了很多单键导航等功能,尽量接近这个,但是还是差的比较远的。

      1. 难道几种模式也能模拟出来?那单一个keyboard.ini是实现不了的吧?如果仅仅是简单一些的,那我自己修改得也差不多了……

  6. 感觉vim的模式化不是太适合多媒体时代的互联网啊,如果经常浏览文字性的网站、博客,可能作用会比较大,但是经常看图片和视频的时候就会用到鼠标。加上鼠标手势之后,其实也是很方便的啦。另外,chrome下面也有类似的插件,不过对模式的支持没有vimperator好就是了。

  7. 快速打开相关网页,我觉得使用Qmarks命令比较方便(按M后a-zA-z任意字符记录该网站,go后a-zA-Z在当前标签打开,gn后a-zA-Z在新标签里面打开),另外把Locationbar和书签集成到:tabopen的自动补全也是好方法(参考一下:set complete选项)另外Gmail和Greader之类的快捷键冲突问题可以用Feedsomekey2这个扩展来解决(具体作用是于特定网址时把特定快捷键交回网页内容)

    1. gmail和greader可以在_vimperatorrc中添加下面这行代码解决
      :autocmd LocationChange .* :js modes.passAllKeys = /mail.google.com|www.google.com/reader/view/.test(buffer.URL)

      1. 这个自然也是可以的,但是会把所有的Keymappings去掉,这个时候想切换标签和关闭标签就比较麻烦了。Feedsomekey就是可以限制哪些键可以忽略,所以比较方便

  8. 谢谢分享。试用了一下,感觉不错,但是发现网页不居中了,偏右侧,部分看不见。我用的是FF 3.0 Vimperator 2.0 是版本还是设置的问题呢?

  9. 提个建议:

    我是用googlereader订阅善用佳软的,也经常上来看文章后面的评论/留言。今天再次回头看,发现善用佳软的文章已经更新了,但在rss中没用任何提示。
    (xbeta注:标准的rss功能不适合我这种非标准(常更新)的blog 行为。所以,技术上做不到这点。)

    建议以后文章有大的更新的时候,应该在rss中给个提示,否则看到的人不多,文章的利用率不高,更新就没有意义了。

    再有就是评论中应该加上邮件提示功能(xbeta注: 此功能在我这里有bug,无法退订。有些读者不胜干干扰,故取消之),事实上,有的文章后面的评论已经跟文章本身合为一体了,相信读者们有需要经常查看的时候。

    ps:这几行字是用vimperator+gvim写的,十分爽。

    1. @hi_lucky, 因为gmail和greader本身就利用了大量的js特性支持热键操作,跟vimperator有冲突。可以使用ctrl + z 来临时禁用 vimperator

  10. >默认的设定(y: 复制当前页的url到剪贴板。Y:复制选中文字到剪贴板)很不合理,应该交换一下。如下配置竟能生效。
    >noremap y Y
    >noremap Y y

    复制方面吐血推荐某个脚本copy.js,用起来绝对会上瘾的,另外脚本是Vimp一个比较强大的地方,下面的网址是非官方脚本下载点,日本玩家维护的貌似(不知道为什么,日本玩家对Vimp超级热情)
    ttp://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/copy.js

  11. to:xbeta
    有没有可能在首页加个近斯更新列表,读者上来的时候可以看到自己感兴趣的文章是否已经更新。
    (xbeta注: 有些复杂。某些更新也并没有多重要。)

  12. 关于vimperator推荐两个东西:
    1.设置配置文件的相对路径,搜索“虚拟隐居谷: vimperatorrc文件路径的修改”
    2.中文首字母hint,搜索“pinyin-hints-vimperator”
    —–
    另外问个问题:网上有两个脚本maine-coon和_libly,可以实现命令行不使用时自动隐藏,节省空间。之前鼓捣半天有设置成功过,后面vimperator升级到2.2时,原先的设置全部被覆盖,后面再怎么设置都没弄成功。有用这两个脚本的麻烦吱声下:脚本的放置位置,脚本是否要改后缀,脚本是否要添加内容。。。

      1. 错误提示:
        sourcing file: c:Documents and SettingsAdministratorvimperatorplugin_libly.js:1: syntaxerror: missing = in xml attribute

        sourcing file: c:Documents and SettingsAdministratorvimperatorpluginmaine_coon.js:1: syntaxerror: missing = in xml attribute

        1. 注意一点,
          当你下载了一个脚本之后,你要查看他的源代码,
          里面会有详细的说明,包括脚本的适用版本.
          而上面的两个脚本,却都是只能适用最新的2.3
          正式的2.2已经不能用了.

  13. 我尝试使用feedsomekey脚本来解决gmail,greader,gcalendar快捷键冲突.
    greader,gcalendar按照feedsomekey的说明都解决问题了
    但gmail一直不能解决,在gmail页面,vimperator和gmail自身的快捷键都失效了,不知道是什么问题
    我的设置如下:
    “解决gmail,gcalendar,greader快捷键冲突
    :autocmd LocationChange .* :fmapc
    :autocmd LocationChange ‘mail.google.com/mail/’ :fmap -depth 4 c / j k n p o u e x s r a # [ ] z ? gi gs gt gd ga gc
    :autocmd LocationChange ‘www.google.com/reader’ :fmap! -vkey j k n p m s t v A r S N P X O gh ga gs gt gu u / ?
    :autocmd LocationChange ‘www.google.com/calendar/’ :fmap! -vkey -event keydown t a d w m x c e / + q s ? j k p n

    1. 这是因为Gmail改版过导致depth开到4也没有用,在我的Gmail上,只需要把-depth 4改成-depth 5就可以使用了,但是一旦把某个gadget还原出来后又不能用了,估计还是depth的问题,你试着改大一点

  14. 2.2貌似把map规则改了不少,像
    map l gt
    map h gT
    能用,
    noremap j 7j
    noremap f F
    在win不能用,在linux下有段时间能用。郁闷。

    1. 兄弟所说的就是以前vimperator存放脚本和主题的地方,不过最近都转入google code了,那个好像更新也不及时了.

      1. 对于刚才自己的说法抱歉,特意去了下,应该是这个网站还在更新呢.比如楼下朋友说的两个插件.在2.2也是可以用的了

      2. 如何把HINT由数字,改成字母,仍然没有成功。总是有些莫名其妙的问题。谁发一个做好的VIMPERATOR呀。

        1. 经实践证明,还是数字好用些,字母的问题,一般都是
          大写的,需要的按键会更多.所以,建议还是数字方便些.
          另外,可以通过配色把字体更改大一点,就更好辨识了.

  15. 我用超级下一页出错,提示:processing keypress event: SyntaxError: invalid quantifier ?)$
    这是怎么回事?

    FF3.6+vimperator2.2 winxp

    1. 哪里来的问号?那里本应该是»这个符号吧.记事本里似乎不能正常显示这个符号,所以你拷贝过去了后被替换成?了.

      1. 那段错误提示不是复制的,是我手工打的,就是问号,我记得很早以前能用的,后来不知道怎么回事就用不了了

    1. 这个是不是你vim的配置有问题
      vim的编码配置可能是有问题吧,
      可以尝试在vim的rc中加入这样的
      设定.
      “language settings
      set langmenu=zh_CN.UTF-8
      language message en_GB.UTF-8

  16. 我的配置是:firefox3.6+vimperator2.2+win7

    “Look up the word you selected in dict.cn在dict.cn中查找所选词的英语
    command! dict -nargs=* tabopen http://dict.cn/
    map w :dict
    map W :exe “:dict “+content.getSelection()
    ====
    这几行是想在dict中查找所选的单词吧,我把上面几行写到我的_vimperatorrc中,没有成功。

    选好单词,按“w”,firefox在新的标签中打开dict.cn,但是只是主页面,没有所选单词的解释。

    “Next Page and Previous Page超级的下一页,基本上是够用了.快捷键是[[和]]
    set nextpattern=s*下一页|下一张|下一篇|下页|后页s*,^bnextb,\bnext\b,^>$,^(>& gt;|»)$,^(>|»),(>|»)$,\bmore\b
    set previouspattern=s*上一页|上一张|上一篇|上页|前页s*,^bprev|previousb, \bprev|previous\b,^<$,^(<<|«)$,^(<|«),(<|«)$
    ====
    这几行复制到_vimperatorrc中,firefox重启报错。

    1. 一个一个回复
      1.dict问题
      w(小写)是查找任意词的.你要在命令行后面加上你的查找的词
      W(大写)是查找选定词.
      大写小写的问题,在vim和vimperator中各个字母的功能是不一样的.
      2.超级下一页的问题
      应该是注释的问题
      可以这样试试.
      “Next Page and Previous Page
      set nextpattern=s*下一页|下一张|下一篇|下页|后页s*,^bnextb,\bnext\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\bmore\b
      set previouspattern=s*上一页|上一张|上一篇|上页|前页s*,^bprev|previousb,\bprev|previous\b,^<$,^(<<|«)$,^(<|«),(<|«)$

      给你带来不便,见谅.

      1. 你太客气了。要学习东西,还要方便,天下哪有这等好事?:)

        不过还是不成功。

        1
        按“w”+回车,进入dict.cn。
        选一个单词,按“W”,命令行提示:“exe “:dict “+content.getSelection()”,再回车报错。

        2
        在汽车之车网站,按“]]”,报错,提示:“exe “:dict “+content.getSelection()”。

        ====
        以下是我的_vimperatorrc。
        “2.2 (created: 2009/10/28 19:04:27)

        set “editor=c:/progra~1/vim/vim72/gvim.exe -f”
        set guioptions=rbn
        set “runtimepath=C:\Users\Lenovo\vimperator”
        source! “C:\Users\Lenovo\_vimperatorrc.local”

        ” vim: set ft=vimperator:

        “Next Page and Previous Page
        set nextpattern=s*下一页|下一张|下一篇|下页|后页s*,^bnextb,\bnext\b,^>$,^(>& gt;|»)$,^(>|»),(>|»)$,\bmore\b
        set previouspattern=s*上一页|上一张|上一篇|上页|前页s*,^bprev|previousb, \bprev|previous\b,^<$,^(<<|«)$,^(<|«),(<|«)$

        “Look up the word you selected in dict.cn在dict.cn中查找所选词的英语
        command! dict -nargs=* tabopen http://dict.cn/
        map w :dict
        map W :exe “:dict “+content.getSelection()

        1. 下一页的问题,我不也不太懂.不能解决.
          那个查词.是你的rc好像问了点问题
          “Look up the word you selected in dict.cn
          command! dict -nargs=* tabopen http://dict.cn/
          map w :dict
          map W :exe “:dict “+content.getSelection()
          你应该是忘记了最后的这个就是回车

  17. 有的URL很有规律,跟你输入的关键字有关,怎么实现只输入keywords就能打开下面的网址:http://gigapedia.info/1/@creator keywords @tud
    能帮忙解决这个问题吗?谢谢了

    1. 在normarl模式下,按f,然后。输入keyword就可以了找到它。然后回车打开。建议keyword是英语最好。。要么就是数字

      1. 不是这个意思,我是想如何实现给URL填空,就是有个URL模板,你只需输入你想填的而不必输入整个URL,就跟定义搜索引擎类似但更灵活,比如这个URL, http://gigapedia.info/1/@creator XXXXX @tud
        只需输入XXXXX就可打开整个链接,有什么方法吗,我也在用vimperator,谢谢了

        1. 我想我明白你的意思,不知道你明白我的意思没有,我每次搜索的XXXXX都不相同,总不能每一个都map一次吧,有没有别的方法实现这个功能呢?

  18. 非常感谢博主给这篇文章给我的帮助,但是我在配置的过程中有以下问题:
    首先我的环境是:
    debian + iceweasel + vimp2.1
    1.那个自动补充.com的那个,看到按快捷键后,命令行已经显示正确的命令即:open http://www.baidu.com
    但是打开的页面确实google以www.baidu.com为关键字搜索的结果,请问这个怎么解决呢?
    2.另外,我还是没法调出vim编辑网页
    以上是我的问题,万望博主赐教。
    谢谢。

    1. 对于您的问题,由于没有您的系统环境,提出的建议也不一定正确。见谅
      1.这个是不是因为你安装别的扩展,比如把地址栏和搜索栏合并的扩展,具体原因我这里没有遇到过。
      2.这个是要设定的。
      在windows下是这样子的。
      对于有空格的目录,需要这样设置。比如
      是这样子
      set editor=”C:/Progra~1/vim/vim72/gvim.exe -f”
      没有空格的就很好设定了。

  19. xbeta老师,非常感谢您对我文章《使用Vimperator制作超简约风格的Firefox》的引用。不过我的博客最近换了域名,这篇文章的新地址是:http://ericcong.com/82.html。如有时间,麻烦您做一下小小的修改,非常感谢。
    (xbeta注:已更新 )

  20. 关于修改文件类型部分可以直接使用vim的-c选项
    像这样
    “gvim -c ‘set filetype=html’ -f”
    (xbeta注: 非常感谢)

    1. 在最新的vim73b和最新的vimperator的2.4pre下面,直接造成fx的卡死.准备去和作者请教下,看看如何解决.

  21. 因为你写错了。 要写成
    noremap tm :tabopern mail.google.com
    如果不设置的话,对应的是键,相当于tm
    当然,你也可以通过
    let mapleader = ,的设置来更改所指代的符号。
    不过在最新版的VIMP中我更改mapleader没有成功。

  22. 方法1.订阅新闻组
      vimperator@mozdev.org.这个是英语的.里面好东西不好,作者经常和用户进行交流,有什么疑问可以到这里提问.

    应该是好东西不少吧。呵呵

  23. 不知为何 next pattern在水木上老是不行
    我先是试了文中的, 不行
    再按help上的
    bprev|previousb,^<$,^(<<|?0?0)$,^(<|?0?0),(<|?0?0)$
    改成
    b上页|上一页b,^<$,^(<<|?0?0)$,^(<|?0?0),(<|?0?0)$
    也不成

    (xbeta注:确实这样,原因不知。莫非与水木js文件有关? )

  24. 为什么在调用vim编辑后在网页中的显示都是乱码呢,很是奇怪,编码配置也没问题啊。rc是复制您的啊。

    1. 这个应该是你的vim编码设置有问题
      在你的rc加上这样一个设置即可
      set enc=utf-8
      set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

      1. 这样是可以很好的显示了。但是vim又出问题了。就是在初始页面显示乱码,而且在右下角的状态栏里也是乱码。将rc文件复制如下,你看下啊。
        set nocompatible
        set magic
        set ru “标尺信息
        set ai
        set sw=4
        set ts=4
        set dy=lastline ” 显示最多行,不用@@
        “以上是缩进相关
        set backspace=indent,eol,start
        colo evening
        sy on
        set go= ” 无菜单、工具栏
        set nobackup
        set hlsearch
        set showmatch
        “tab mappings
        map 1gt
        map 2gt
        map 3gt
        map 4gt
        map 5gt
        map 6gt
        map 7gt
        map 8gt
        map 9gt
        map :tabnew
        map :tabclose
        map! 1gt
        map! 2gt
        map! 3gt
        map! 4gt
        map! 5gt
        map! 6gt
        map! 7gt
        map! 8gt
        map! 9gt
        map! :tabnew
        map! :tabclose

        ” Use CTRL-S for saving, also in Insert mode
        noremap :update
        vnoremap :update
        inoremap :update
        “2006-09-13 如下:保存视图
        au BufWinLeave *.ztx mkview
        au BufWinEnter *.ztx silent loadview
        au BufNewFile,BufRead *.tx1 setf tx1
        set enc=utf-8
        set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

  25. 还比如.超级下一页的]]和[[不太好用.因为要按两次。我们可以这样设置
    :map ] ]]
    :map [ [[

    ———————————————–
    这个设置貌似不管用啊。不论是在FF里设置了,还是直接修改 vimperatorrc 然后重启,都不管用啊。翻页还是需要按两个 ]]

      1. 貌似是不管用啊。按下 ] 以后,vimperator 就在等待,这个时候按一下一个 ] 或者按 ESC 都会触发翻页,但是不按别的键的情况下,vimperator 就一直等。。。

  26. 加入一些常用插件的介绍具体可以到http://wingofikaros.posterous.com/-vimperatorfirefox
    里面查看.作者对vimperator的研究很深.有兴趣可以多看看.很有意思
    里面提到的脚本都可以在http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk里面找到.一般都是可以用的.
    1._libly.js:高级魔法所必须的基础咏唱。

    2._smooziee.js:让jk移动变成平滑滚动。可设置细节。

    3.buftabs.js:

    可以让状态栏显示标签栏。因为我用的树状显示+仅显示图标,于是标题变更什么的时候启动,开关命令映射至sd和sa进行快速开关。

    4.commandbookmarklet.js:

    可以自动识别书签中的小书签并创建相应的vimp命令(:bml),一句话:神!

    5.copy.js:

    神脚本之一。一条命令复制出该网页的地址和标题和brabrabra…可以自定义样式,一条命令复制出一个超级链接的HTML源码什么的也不在话下,小菜一碟。

    6.feedsomekeys.js:

    神脚本+必备脚本之一。一条命令可以让某些快捷键取消映射并回复与网页内容的兼容性。主要用在Gmail、Greader、Twitter等需要用到快捷键的地方。

    7.gmperator.js:

    让Vimp命令支持操作油猴扩展。imageloader的手动启动时必备。

    8.google-search.js:

    可以在命令行里面用google搜索。补全里面可以出现suggest,不过实际上没怎么用。

    9.imageloader.js:

    让vimp命令支持操作imageloader。imageloader必备。

    10.linkpad.js:

    共有两条命令:一条是把当前网页保存至某buffer中,另一条是把网页从buffer中提取并打开。主要用在“稍后阅读”的时候。简单而实用。

    11.maine_coon.js:

    神脚本之一。可以隐藏任何一个框架,使浏览器达到最简。一般使用的话是自动隐藏命令栏用。

    12.migemized_find.js:

    神脚本。让vimp的搜索功能和补全功能支持migemo。

    13.mouse_gestures.js:

    鼠标手势脚本。支持的动作是所有浏览器动作,所有vimp命令,所有击键和Javascript。可以用无敌来形容这个鼠标手势。但是遗憾的是没有超级拖曳功能,个人用pp映射p,po映射YP,还有就是Ctrl+Click,超级拖曳问题解决。

    14.nextlink.js:

    与Autopagerize识别数据库和操作一致,不同的是并非自动,而是手动。相比自动,还是手动比较方便。另外vimp的]]和[[功能极其强大,也可一并使用。

    15.opener.js:

    在执行打开链接操作的时候,假如已经打开了该网页,就直接聚焦到该网页而不是重新打开。一句话:真神!另外它还有个扩展版,兼容缩短网址……我只能拜服了。

    16.PluginManager.js:

    查看插件信息用。

    17.spatial-navigation.js:

    模仿opera风格的导航功能。在强大的hit-a-hint功能面前,这个也只能纯属娱乐了……

    18.twitter.js:

    在命令行上发推。可以收推,回复,RT,@username补全什么的。挺好玩的脚本。

    1. @tc, 大牛,能讲的细一些吗,既不会英文,也不会日文。
      上面的文章里的一些插件都需要配置_vimperator,但不会啊。

  27. 对于想把vimperator放在任意路径下面,可以采用以下方法:
    (1)建立一个bat文件
    (2)里面写入以下代码
    @set VIMPERATOR_HOME=%CD%
    @set USERPROFILE=%CD%
    @set HOME=%CD%
    @set HOMEPATH=%CD%
    start .FirefoxPortable.exe
    (3) 这个批处理文件要和firefox执行文件放在同一个目录下面

    1. _vimperatorrc配置文件里还是绝对路径
      再拷贝到其他计算机的时候,配置文件还是需要重新来编辑一下

      _vimperatorrc配置里支持相对路径吗?

  28. 个人感觉这个扩展好复杂啊,完全就是折腾人,我的原则从来是让软件为人服务,如果一款软件太复杂干扰我的的正常使用,格杀勿论!

  29. map ,s :so “c:/Documents and Settings/zyx/_vimperatorrc”
    这条命令我一直不成功啊,晕,let mapleader = “,”我设了啊!

  30. 我是在博主的推荐下使用的VIMP,但是在使用的过程中有一个疑问,在Hint模式下,如何实现字母筛选链接?
    不太喜欢现在的数字筛选的方式。请问博主有办法通过设置的办法实现吗?

  31. 多年来,我一直喜欢用K-Meleon浏览器,昨晚我提取了vimperator.xpi里的.js文件放到K-Meleon中却无效,还请高手给想想解决方法,多谢!

  32. 上一条评论莫名其妙的消失了~
    我是在博主的推荐下使用的VIMP,但是在使用的过程中有一个疑问,在Hint模式下,如何实现字母筛选链接?
    不太喜欢现在的数字筛选的方式。请问博主有办法通过设置的办法实现吗?

  33. 实在想请教XBETA朋友,我应该如何做才能够把PENTADACTYL的HELPALL内容生成一个CHM或PDF文件?直接打印,两边的空白边实在太大了.

    软件水平比较低,希望得到有效的指点,谢谢!!

    1. 设置fx的最小字体,把它搞大点就可以了
      不过,看完帮助后,你最好把fx的最小字体设“none”,不然,你看很多中文网页会出现重叠等问题

      当然,你想一劳永逸地解决问题,就得改vimp/Penta扩展里的css就可以了。具体的,我就懒得多说了,因为没有必要!

  34. 我使用的是 Pentadacty ,在命令行下输入
    set editor=’c:/Progra~1/vim.exe -f’ 后,使用 Ctrl + i 可以调出GVIM
    如果当前窗口有内容的话,其内容也能正常的传入GVIM中,但是,编辑完后使用:wq 保存退出,则网页上的文本框什么内容都没有添加,跟没有使用vim 一样 ,这是怎么回事呢?

  35. 我是一名新手,因为在用 Fx4,就直接选择了 Pentadactyl,但是发现很多 Vimp 的插件都没法用,不知 xbeta 或者其他热心的朋友能不能组织一下 Vimp 插件的修改移植?

  36. 请楼主修正一下关于Penta和Vimp的一些观点。

    Firefox4并不只有Pentadactyl。Vimperator也有相应的Vimperator3.0pre,而且实际上这两个目前在大致性能和功能上并没有太大的差别。但是发展方向不一样,Vimp更注重于面对相对来说大众一点的用户群(取消默认的guioptions=rb就是最好的例子),而Penta则是完全忠实于远祖Vim。我想说的是,这两个目前并没有什么谁高谁低的说法,文中出现的说法只是针对penta相比Vimp2.3而言,这种说法已经过时了。具体可以参考一下Vimperator的Google code里的Vimperator3DesignGoals。

    另外最后文章上面的via @???什么的正是本人的发言,不过这句话本身也过时了(那个时候Vimperator3还没开始开发),最好请删除吧免得误导大家。

  37. 请问pentadatyl如何修改 下方黑色的状态栏颜色?在.pentadatyl中没有找到color相关的配置文件。

    1. @fengleiqi
      这样就行了
      “highlight StatusLineNormal color:black; background: #f0f0f0 !important; font-size: 9pt; font-family: monospace; font-weight: 600; padding: 0px 3px;

  38. 我想问一些问题,呵呵是firefox4 +vimperator
    1.怎么写命令把当前页用ie打开? 我在网上找到map ie :js io.run(“c:\program files\internet explorer\iexplore.exe”, [buffer.URL]) 不管用啊···
    2.直接打开外部的程序,比如在命令栏里面打入命令可以打开qq,也是在网上找到
    map Fq:js io.run(“D:\qq\qq.exe”) 同样也是不可以用···求实现方法,谢谢啦!

  39. 换成3.0以后,nextpattern 似乎不能识别中文了,下一页失效了
    next倒是还可以

    不知道有人遇到同样的问题么?
    顺便求解决方法

  40. 我的Nextpattern在Pentadactyl也不起作用了,加中文如“下一章”之类的,没有用。无论是在配置文件里面加,还是在命令行加,都不起作用。
    谁能帮忙啊?

      1. @jayklx, 你使用Pentadactyl 1.0rc了吗,我用1.0rc在wordpress富文本编辑器下有点问题。复制,方向键什么的都不能用。

    1. @Jonathan, 我晕。。忘记贴上来了。。不好意思
      set nextpattern+=’s*下一页|下一张|下一章|下一篇|下一页|下页|后页s*’
      set previouspattern+=’s*上一页|上一张|上一章|上一篇|上一页|上页|前页s*’

        1. @geminiwh,

          我的是firefox 6.02+vimperator3.2,如下设置有效:

          set “nextpattern=s*下一页|下一张|下一篇|下页|后页s*,^bnextb,\bnext\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\bmore\b”
          set “previouspattern=s*上一页|上一张|上一篇|上页|前页s*,^bprev|previousb,\bprev|previous\b,^<$,^(<<|«)$,^(<|«),(<|«)$"

        2. @benuroc,
          升级到6.0.2,然后按照您的设置试了一下
          提示 invalid quantifier

          其实这个功能用处不大,经常会误选其他链接,倒也不经常用
          只是对搞不定中文彻底无语……

    2. @Jonathan,
      我以前直接修改配置文件,不成功,原因是编码问题。
      后来在命令行里,成功了。别忘了mkv。

    1. @youanan,

      估计你的配置文件把右边的滚动条取消了,用命令: set+=r 就可以了,记得 mkp! 来保存设置

    1. @tom,

      我这边的TAB就是自动转到下一个Link上,不知道你所谓的失效是指?
      建议你去检查下配置文件,看看那边也没有对TAB进行设置。

  41. 谁能说一下Pentadactyl与vimperator哪个更有前途,效率更高,速度更快一些?现在用vimperator,前段时间刚换回来的,因为Pentadactyl有个什么设置总也不成功。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.