2010-01-06

Vimperator入门

此文来源于一篇叫《玩酷的vimperator教程》的文章,我是在这里看到的。我按照我的学习使用体会,对文章的局部进行重新排版,针对目前最新的Vimperator2.1进行了一些修改,添加了一点点内容和图片。版权为原作者所有。

Vimperator是什么?从虚来说,它是一种信仰,一种生活方式;从实来说,它是一个把Firefox(fx)的操作变成Vim式的fx扩展,它给fx提供了与Vim相似的快捷键,使fx变成了有“模”的浏览器。从而无论是 fx 的外观,还是 fx 的行为,都像极了 Vim。详情可以查看它的官方网页:http://vimperator.mozdev.org。可以说,有了Vimperator,就有了几乎完控fx的一切。当然,要耍酷,得付出点代价,得记住各种命令和快捷键,若你是vim的熟手,那就太容易不过了;若不是,估计你安装完vimperator,重启fx后就会傻眼:面对既没有菜单栏,也没有工具栏的 Firefox,可能会感到无所适从。开启方法是输入:set go=mT。m表示menu(菜单),T表示Toolbar(工具栏)。如果需要显示状态栏的话,就输入:set laststatus=2。即使这样,你也会发觉以前熟悉的fx快捷键几乎都没啦,咋办:按下Ctrl-z,你就会发现fx默认的快捷键又可以用了。要重新回到vimperator下,只需要按下Esc键。这里以vimperator2.1版来详细介绍下它的用法!先约定下表达方式:

  • Ctrl-x的另一种表示<C-x>;Alt-x 表示为 <A-x>;Shift-x 表示为 <S-x>
  • 很多操作既可以在normal mode下运行,又可以在command mode下运行,这里用“/”来表示,如:u对应的是:undo,就表示为 u/:undo
  • 有些操作有相反两个方向,这里用<-->表示,如:左右移动滚轴  h <--> l
  • 命令前后的数字,都可以换成任何数字

1.打开链接

:o[pen]/o     /*在当前标签页打开*/  
:t[abopen]/t  /*在新标签页里打开*/ 
:winopen      /*新开窗口实例打开*/

例子
:o  ../user/file.txt       /*打开$HOME目录下的file.txt文件*/
:t  google 水木        /*在新的标签页打开谷歌并搜索“水木”*/
:o 水木社区      /*在fx默认搜索引擎里搜索“水木社区”,由’defsearch’来设定默认引擎 */
:t  bbs.newsmth.net, bbs.lqqm.net, news.sina.com.cn    /*用3个新标签后台打开这三个网页*/

2.标签页

:2bd/:2tabc/2d    /* 关掉当前标签及右边紧邻的标签;2D是关掉当前及左边的标签 */
:3u[ndo]/3u      /* 重新打开最近关掉的3个标签 */
:qall/:winclose/ZQ    /* 退出fx,不保存各tab地址 */
:xall/ZZ                    /* 保存tab地址退出,重启fx后可以重新打开这些标签 */
g0/:tabfirst <--> g$/:tablast              /* 到第一个或最后一个标签 */
gT/<C-p>/:tabp <--> gt/<C-n>/:tabn        /* 到前一个或后一个标签  */
b5<CR>                  /* 到第五个标签,<CR>指回车 */
<C-o>/:ba <--> <C-i>/:fo  /* 前进或后退 */
<C-6>                   /* 可在标签栏上来回切换最近浏览过的两个标签 */ 
r              /* 刷新 */

3.在页面移动

<C-f> <--> <C-b>    /* 上下卷动一屏 */
<C-d> <--> <C-u>    /* 上下卷动半屏;可由’scroll’来定制 */
gg <--> G    /* 到页面顶部/尾部;45gg/45G 指到页面45%处*/
0 <--> $     /* 到页面最左端/最右端 */ 
h,j,k,l   /* 上下左右移动页面 */
                gg
                3k
                 |
  0, 3h ----+----- 3l, $
                 |
                3j
                G
2gi       /* 光标定位到当前frame的第二个输入框 */
]f<--> [f      /* 前进后退一个frame,对于存在框架的网页(比如谷歌图片搜索)要使用这个命令 */
]]<--> [[      /* 浏览一些论坛时的“下一页或上一页”,可由’nextpattern’定制 */

4.搜索当前页面

/pattern<CR> <--> ?pattern<CR>       /* 往下/上搜索pattern,支持正则 */
* <--> #      /* 往下/上搜索当前光标处的词,最好进入caret mode,好操作 */
:上面两种情形都可以用 n/N来下/上寻找下一个匹配

5.链接地址:URL

y<--> p          /* 把当前URL拷贝到粘贴板或把粘贴板上的URL在当然页打开 */
P           /* 大写的P是在新标签页打开粘贴板里的URL   */
注:Vimperator没有地址栏,对网页的修改很不方便。比如因为特殊的环境常要把http改成https,但这样的操作会变得很不方便,建议给fx装上Greasemonkey,再装上HTTP-to-HTTPS redirector 脚本,这样可以自动转成https。
gu          /* 到URL的上一层目录 */
gU          /* 到URL的根目录    */
<C-a><--> <C-x>   /* 把URL最后一个数字增加/减少1,然后打开 */
例如:
2gu 是指从http://www.example.com/dir1/dir2/file.htm到 http://www.example.com/dir1/
<C-a>是指从 http://www.example.com/2008.htmhttp://www.example.com/2009.htm

6.打开链接

在一个页面按f键,进入QuickHint mode(作者给取了这个名字),就会发现所有的链接都被数字编号了,此时只要你输入那个数字或者链接中部分关键词,就可以在当前页进入那个链接了(F是在新标签里打开)。

7.书签QuickMarks

QuickMarks  是Vimperator的书签解决模式,通过它可以很快速地打开网站,代价是要记住所有书签,并且最多只能添加42个书签。添加书签的方式是撕开要添加书签的网页,按M,再按[A-Za-z0-9]中的任意一个键,这个键就是当前网页的快捷键。详细的命令如下:
M+快捷键           /* 添加当前网页的快捷方式 */
:qmark+快捷键           /* 添加当前网页的快捷方式 */
go+快捷键           /* 在当前页打工指定的快捷网址 */
gn+快捷键           /* 在新标签页打开快捷网址 */
:delqm+快捷键           /* 删除指定的快捷键 */
:qmarks           /* 显示所有的快捷网址 */

8.页面

g<C-g>/:pageinfo      /* 查看当前页面信息 */
gf/:viewsource     /* 查看当前页源代码 */
zi <—> zo      /* 放大/缩小当前页,zoom in/out */
r/:reload <--> <C-c>/:stop     /* 重新载入当前页或停止载入当前页*/

9.调用fx的各种属性

:pref                     /* 调出fx的option对话框 */
:pref!                     /* 调出fx的about:config  */
:addon                    /* 调出fx的扩展对话框  */

           addons          /*  调出fx的扩展对话框 */
:dialog    checkupdates      /* 调出升级对话框 */
           console          /* 调出控制台 */
           downloads        /* 调出历史下载列表 */

9. ex命令、选项、配置文件及插件

A)  ex命令,也就是按下冒号后输入的命令,下面介绍几个最常用的
:cd           /* 切换当前目录 */
:pwd          /* 显示当前目录 */
:restart         /* 重启fx */
:saveas        /* 保存页面 */
:hardcopy      /* 打印当前页面 */
:set           /* 设置选项 */
:mkv          /* 建立配置文件 */
:!cmd          /* 可以执行系统命令 */

B) 选项设置
有5种数据类型
布尔型        例如:  set ic            /* 忽略大小写;反之则set noic */
数字型        例如: set ls=2,         /* 总是显示状态栏 */
字符串型      例如: set titlestring=fx    /* 把标题栏名字改为“fx” */
单字符串型    例如: set go=mT         /* 显示菜单栏和工具栏 */
串列表型      例如: set act=tabopen,paste  /* 自动激活:tabopen和y,Y命令 */

set命令的几种用法
:set                     /* 显示所有和默认不同的设置 */
:set all                   /* 显示所有设置 */
:set {option}?             /* 显示option的值 */
:set {option}&             /* 重新设定option的值为默认的 */
:set all&                  /* 重新设定所有option的值为默认的 */
:set {option}+={value}           /* 把option的值在原来基础上加value */
:set {option}-= {value}      /* 把option的值在原来基础上减value */
注:在配置文件里set命令前的冒号可以省略

C) 配置文件和插件
Vimperator可以有配置文件,文件名是.vimperatorrc或者_vimperatorrc,该文件所在的目录是系统变量$HOME所定义的位置
在unix/linux下一般为:  ~/
在Windows下一般为:  C:\Documents and Settings\user\
并且还可以设置一个用户变量或者系统变量$VIMPERATOR_HOME来改变vimperatorrc所在目录的位置,并且$VIMPERATOR_HOME优先度大于$HOME(强烈建议作者把vimperator扩展所在的相对目录也可存放配置文件,这样把fx放在U盘里,就不用麻烦还要拷贝配置文件到另外一台机子上的$HOME目录)Vimperatorrc里可以是ex命令,也可以是js脚本。你既可以新建这个文件,也可以在fx里用命令 :mkv来自动建立这个文件。并且vimperator还可以拥有插件,全放在vimperator目录下,插件都是些js脚本。而“vimperator目录”与配置文件所在目录一样。例如如果你需要hint mode下的链接编号为字母的话,就需要在http://vimperator.mozdev.org/scripts.html 下载插件char-hints.js 放入vimperator目录中,然后重启fx,或者用:source命令使之生效。目前绝大多数网上的插件都是日本人写的。

附一我的简单vimperatorrc文件
"------------------------------------------file begin-----------------------------------------------------
"2.1 (created: 2010/01/03 13:13:06)

set guioptions=mbT
noremap <C-c> <C-v><C-c>
cnoremap <C-c> <C-v><C-c>
inoremap <C-c> <C-v><C-c>

set nextpattern=\s*下一页|下一张|下页\s*,\bNext|next\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\bmore\b
set previouspattern=\s*上一页|上一张|上页\s*,\bprev|previous\b,^<$,^(<<|«)$,^(<|«),(<|«)$

set titlestring=Fvim
set editor=gVimPortable -f
set guioptions=nN
map! <C-l> :!d:\green_soft\gVimPortable\gVimPortable.exe<CR>
" 解决vimperator与Google reader跟gmail快捷键冲突,自动PASS THROUGH状态
autocmd LocationChange .* :js modes.passAllKeys = /mail\.google\.com/.test(buffer.URL) || /google\.com\/reader\//.test(buffer.URL)

"------------------------------------------file  end-----------------------------------------------------

附二Vimperator常用命令图:
vimperator

(完)

2 条评论:

  1. 这玩意儿用熟了以后太高效了,用了Vimperator再用普通浏览器能急死……

    博主总结的太棒了,相当提高驾驭Vimperator的内功,图偷走收藏了~~

    回复删除

留言须知:
0. 你有權保持沉默,但你所說的將作為此BLOG有人訪問的證據。
1. 支持的HTML標籤:<a href="" title=""> <b> <em> <i> <strong>。
2. 留言留名,不然易被无视。(在“评论”中选择“名称/网址”,网址可以不填)。
3. 原則上我不删除留言,除非那則留言侮辱到你。