Pentadactyl
2011-02-05 22:37:59 /Mozilla/Firefox
鼓捣了两个小时Pentadactyl,真是个叫人语无伦次的东西,硬是把我从Chromium又拉回到Firefox了。
Pentadactyl是源于Vimperator的一个Firefox插件,但是装上这个插件之后Firefox就不叫Firefox了叫Vim……
这个插件有一个缺点是浪费鼠标。
前奏
装了这个插件后启动Firefox时界面可能会有很大变化,熟悉的各种XX栏可能都会消失。恢复的办法是
| 
 1 
 | 
set go+=mBT | 
这样子可能会熟悉一些。不过还是建议用
| 
 1 
 | 
set go-=mBT | 
让它们消失吧。一旦你习惯了Pentadactyl你不会想看见它们的。
下文中<C-x>表示Ctrl+x,<A-x>表示Alt+x,<S-x>表示Shift+x,<M-x>表示Meta+x。
使用这个插件需要一定的Vim基础。最起码的,要知道模式的概念以及甩Esc可以回到Normal模式。还要知道:help是个有用的命令。
第一课 导航
以下是有关导航的基本命令,有了这些就可以随心所欲浏览页面了。
页面导航
- h,j,k,l:四大金刚
 - <C-d>:下半页
 - <C-u>:上半页
 - <C-f>/<Space>:下一页
 - <C-b>/<S-Space>:上一页
 - gg:页首
 - G:页尾
 - [num]gg/[num]G/[num]%:跳至页面num%处
 
标签导航
- <C-n>/gt:下一个标签
 - <C-p>/gT:上一个标签
 - g0/g^:第一个标签
 - g$:最后一个标签
 - <C-6>:在当前标签和最近浏览的非当前标签之间切换
 
历史记录导航
- H/<C-o>:在历史记录中后退
 - L/<C-i>:在历史记录中前进
 
第二课 网页的打开与关闭
要打开一个网页需要进入Command-line模式,用过Vim的一定不会陌生,就是按下冒号:后的那个模式。在Command-line模式下有如下基本命令:
- o/O:在当前标签打开
 - t/T:在新标签打开
 - w/W:在新窗口打开
 
其中小写与大写的区别是,小写会直接执行,大写会将当前URL作为参数显示出来,可以修改后回车确认再执行。
要关闭一个标签,在Normal模式下:
- d/D:关闭当前标签
 
区别是,用d关闭后选择右边的标签,用D关闭后选择左边的标签。
还有一些常用的命令:
- u:打开最近关闭的标签
 - <C-c>:停止载入
 - r/R:重新载入当前页面(R无视cache)
 - gh:回主页
 - gu:打开上级目录
 - gU:打开根目录
 
要退出Firefox怎么办呢?有两种方法:
- ZQ:退出Firefox
 - ZZ:保存已打开的页面并退出Firefox
 
第三课 页面控制
- <C-g>:查看页面基本信息
 - g<C-g>:查看页面详细信息
 - gf:在页面和其源代码之间切换
 - gi:定位到最近输入的文本框。如果没有最近输入的文本框,则定位到第一个文本框
 - zi/+/zm:放大页面
 - zo/-/zr:缩小页面
 - zz:恢复页面至初始大小
 
区别是,zm和zr更狠。
- y:复制当前URL到剪贴板
 - p/P:打开剪贴板中的URL(p=当前标签,P=新标签)
 
第四课 页面内容查找
和Vim中基本相同,也是用/和?
- /:向前查找
 - ?:向后查找
 - n:查找下一个
 - N:查找上一个
 - *:向前查找当前光标下的单词
 - #:向后查找当前光标下的单词
 
第五课 页面导航进阶
现在我们来看如何打开网页中的链接。这需要进入Pentadactyl的Hint模式。有两种方法可以使用:
- f/F:进入QuickHint模式(f=当前标签,F=新标签)
 - ;{mode}:进入extended hint模式(不同的{mode}会导致不同的结果)
 
最简单的,当前页面里有个链接,按下f键,链接上会出现数字,输入那个数字,就跳到那个链接去了。如果按下的是F键,则会在新标签中打开那个链接。如果按下的是;键,则还需要按下{mode},具体请参见help。
在学会了爬链接之后我们再熟悉一下标签之间的跳转(确切地说应该是buffer之间的跳转):
- B:显示所有buffer
 - b:跳转到指定buffer
 
按下B键后可以看到所有的buffer,标记%的那个就是当前buffer,标记#的那个是alternate buffer。按下b键后会让你选择,你可以用数字或关键字跳转到指定buffer,也可以输入#跳转到alternate buffer。
第六课 书签
Pentadactyl支持Firefox的标准书签(Bookmarks)和自身特有的Quickmarks。
对Bookmarks的操作:
- a:添加书签
 - A:添加/删除(Toggle)当前页面为书签
 - bmarks [url]:列出所有书签。若url不为空,列出(关键字)匹配url的书签
 - delbm [url]:删除(关键字)匹配url的书签。若url为空,删除当前页面为书签
 
对Quickmarks的操作:
- M{a-zA-Z0-9}:添加当前页面到Quickmark
 - go{a-zA-Z0-9}:在当前标签页跳转到指定的Quickmark
 - go{a-zA-Z0-9}:在新标签页跳转到指定的Quickmark
 - qmarks [arg]:列出所有Quickmarks。若arg不为空,列出(关键字)匹配arg的Quickmarks
 - delqm {arg}:删除(关键字)匹配arg的Quickmarks
 
第七课 自定义键位映射
不爽的人各有各的不爽,不能自定义的工具不是好工具,是吧。
定义键位映射需要在Command-line模式下进行,需要的命令有:
- map {lhs} {rhs}:定义键位映射
 - noremap {lhs} {rhs}:以-builtin方式定义键位映射
 - unmap {lhs}:取消键位映射
 - mapclear:清除键位映射
 
举个例子吧。J和K两个键位闲着也是闲着,不如用它们来翻页。那我就可以用
| 
 1 
2 
 | 
:map J <C-d>:map K <C-u> | 
来定义两个映射。这样会比较保护小指一点吧。那么为什么需要noremap这个东西呢?看下面这个例子:
| 
 1 
2 
 | 
:map d D:map D d | 
这个会怎么样呢?会让Firefox死翘翘呀!你按下d,它变成D,又变成d,又变成D……就死翘翘啦!正确的做法是:
| 
 1 
2 
 | 
:noremap d D:noremap D d | 
这样子以-builtin方式定义,按下d,它变成D后就不再管其他的映射了,就不会出现死循环了。
Pentadactyl更强大的地方在于可以对不同模式进行不同的键位设定哦。Pentadactyl有如下几种主要的模 式:Normal(n),Visual(v),Insert(i),TextEdit(t),Command-line(c)。其实上面的四个命令都是针 对Normal和Visual模式的。要想定义其他模式下的键位映射,可以用如下格式的命令:
- [n|v|i|t|c]map:(同上)
 - [n|v|i|t|c]noremap:(同上)
 - [n|v|i|t|c]unmap:(同上)
 - [n|v|i|t|c]mapclear:(同上)
 
功能都是一样的,所以就不说了。
第八课 保存设定
哎呀你不是已经退出了吧,退出的话刚才自定义的那些设定就都没有了啦!在退出之前要快快保存才是。保存的命令很简单:
- mkp[!]:保存设定到mkpentadactylrc(!表示强制执行)
 
这个文件一般是$HOME/.mkpentadactylrc。这样子自己的设定可以统统保存和备份,万一到新机器上直接copy过来用就是了。
第九课 打开Firefox的对话框
到这里估计你已经习惯了Pentadactyl吧。不过有时候还是需要和Firefox打交道,比如设置个代理什么的。这时候有一个Command-line模式下的命令:
- dia:打开对话框
 
输入:dia {name}就可以打开指定的对话框了。对于常用的对话框,还有更简单的命令,例如pref,addons等等。
到这里你应该发现很多命令都可以用Tab轮询吧……
第十课 实用技巧
写到这里主要内容就算是完成了。最后介绍一点使用技巧,因人而异,也许你会用的上。
- 首先是gi的使用。这真的是个非常有用的命令,尤其是在搜索引擎上。你可以多按ESC使得页面停留在Normal模式下。当需要输入文字时按gi,就会自动定位到文本框了。
 - 用<C-n>/<C-p>翻页是一个比较好的选择。但是在Insert模式下(比如在文本框中输入文字的时候)这两个键位没有被定义。所以按<C-n>的时候会打开一个新窗口,太糟糕了。解决一下:
12
:imap <C-n> <Esc>:tabnext<CR>:imap <C-p> <Esc>:tabprev<CR> - 想要快速搜索一个单词?只要在Firefox中设置好默认搜索引擎,按o键再输入那个单词就可以了。如果那个单词已经在剪贴板中,直接按p键更快。
 - 在浏览器中打字感到厌烦?尝试一下外部编辑器吧。在Insert模式下输入<C-i>可以打开指定的外部编辑器,以Vim为例,写好之后:wq退出即可。如果不想要这么麻烦,可以输入<C-t>进入内置的Vi模式,也很不错。
 - 看教程点Next是不是很罗嗦?有了Pentadactyl,你只需要按]]即可。同样的,[[相当于点击了页面中的Prev。来这里体验一下:http://docs.python.org/py3k/tutorial/modules.html
 - 修改nextpattern/previouspattern使之支持Google搜索结果的翻页:
12
:setnextpattern=\s*下一页|下一张|下一篇|下页|后页\s*,^\bnext\b,\\bnext\\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\\bmore\\b:setpreviouspattern=\s*上一页|上一张|上一篇|上页|前页\s*,^\bprev|previous\b,\\bprev|previous\\b,^<$,^(<<|«)$,^(<|«),(<|«)$ - 看Blog翻页也很烦吧?试试<C-a>/<C-x>,它们会增减URL最后的数字,哈哈反正我用着是很有爽感啊。
 - 就像Vim一样,很多命令前面是可以加数字的。
 
from http://blog.cykerway.com/post/289
Last Updated on 2016/10/11