Keyconfig使用指南
Keyconfig是我最喜欢的Firefox扩展之一,它极大地扩充了Firefox的快捷键定义功能,我甚至可以只用一个字母键作为我的快捷键,可以说它是继Adblock之后又一个把我牢牢捆在Firefox马车上的扩展。我以前尝试过使用Vimperator,后来发现它提供的很多功能我都不怎么用,只有短小精悍的Keyconfig最符合我的需要。写这篇文章的目的,一是为了向大家推广这个扩展,二是发现网上有的同好因为 keyconfig与Firefox 3 Beta的兼容问题而迟迟不能转换到新版的Firefox上来。
一. 什么是Keyconfig?
Keyconfig是Firefox的一个自定义快捷键的扩展,通过它,我们不但可以定义Firefox及其扩展原定义的快捷键,还可以把原来没有定义快捷键的功能绑定到新的快捷键组合上来,例如类似opera浏览器中用z、x键来后退与前进的浏览功能,再如把F1、F2键重定义成到上一个或下一个标签,又如把j、k键定义成页面上下滚动一行等等。
二. Keyconfig的获取
虽然Keyconfig在Mozilla官方论坛上有自己的讨论串,但是它目前不是官方认可的扩展,所以在官方扩展下载页面上无法找到。它的下载在
http://mozilla.dorando.at/keyconfig.xpi,目前的版本号是20060828.1,这些年来一直由Dorando维护,最近更新日期是2007年5月23日。
三. Keyconfig的使用
1. 与Firefox 3 Beta的兼容问题
由于Firefox 3更改了某些函数名称以及对扩展的安全性作出了新的要求,Keyconfig在未作修改的情况下无法在Firefox 3 Beta中使用。相关修改分成两个方面:修改Firefox设置,修改Keyconfig扩展的源代码。
1.) 修改Firefox设置
a) 在Firefox地址栏中输入about:config,将extensions.checkCompatibility和extensions.checkUpdateSecurity都设置成false。如果设置中没有这两个变量,就手动创建之。(注:如果采用下面的可选步骤,那么可以忽略这一步)
2.) 修改Keyconfig扩展源代码
a) 关闭Firefox。
b) 编辑keyconfig-service.js 。假设你的Firefox配置目录为 d:\fx_profile\,则该文件在d:\fx_profile\extensions\keyconfig@dorando/components/中。找到function keyconfigService() { } ,将其修改成function keyconfigService() { this.os.addObserver(this,"stupid-dummy",false); } 。
c) 将d:\fx_profile\extensions\keyconfig@dorando\chrome\keyconfig.jar拷贝到一个临时目录,将文件改名为keyconfig.zip,然后进行解压。进入解压目录中的content文件夹,编辑keyconfig.js文件。找到Document.createElement("key"),修改为gDocument.createElement("key")。接下来,把解压目录重新压缩成keyconfig.zip,修改文件名成keyconfig.jar,最后将这个文件拷贝覆盖配置目录下的原文件。
d) 可选步骤:修改d:\fx_profile\extensions\keyconfig@dorando\install.rdf
i. 为什么选择这个步骤?其一,不用修改Firefox的设置,从而不会降低Firefox的安全性。其二,扩展窗口里面不会有烦人的提示,扩展图标上也没有红色的感叹号了。
ii. 把<maxVersion>2.0.0.3</maxVersion>中的数字修改成3.0.*;
iii. 去掉<updateURL>
http://mozilla.dorando.at/update.rdf</updateURL>
2. 与Firefox 2最新版本的兼容问题
因为没有在用Firefox 2了,所以不知道Keyconfig跟它的兼容情况怎么样。如果有兼容问题的话,其修改应该与上面对Firefox 3的类似,但是不用修改Firefox的设置。
3. 如何自定义快捷键?
启动Firefox后,按Ctrl+Shift+F12,或者从菜单命令“工具|Keyconfig”中调出配置窗口。
1.) 新添快捷键
a) 点击Add a new key,调出Key Editor窗口;
b) 在Name文本栏中输入利于记忆快捷键功能的名字,例如xxx_Back(这里用前缀xxx_以跟Firefox中原有的快捷键名字区分);
c) 选中Global;
d) 在代码文本框中输入代码
e) 点OK后按下面的方法定义快捷键组合。
2.) 更改快捷键
a) 选中需要更改的项目,例如xxx_Back;
b) 光标移到下面的文本框里,按下新的快捷键组合,例如按z键;
c) 点击Apply后重启Firefox使快捷键生效。
d) 另外点击disable可以禁用快捷键
4. 我的一些自定义快捷键及代码(括号内为我使用的快捷键)
1.) 打开新的标签(T):BrowserOpenTab();
2.) 到下一个标签(2):gBrowser.mTabContainer.advanceSelectedTab(1,true);
3.) 到上一个标签(1):gBrowser.mTabContainer.advanceSelectedTab(-1,true);
4.) 撤销最近关闭的标签(u):undoCloseTab();
5.) 关闭当前标签(d):
var tab = gBrowser.mCurrentTab;
gBrowser.removeTab(tab);
6.) 拷贝当前地址栏内网址(y):
Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
gClipboardHelper.copyString(window._content.location.href);
7.) 转到页面顶部(g):goDoCommand('cmd_scrollTop');
8.) 转到页面底部(shift+g):goDoCommand('cmd_scrollBottom');
9.) 向上翻一页(b):goDoCommand('cmd_scrollPageUp');
10.) 向下翻一页(f):goDoCommand('cmd_scrollPageDown');
11.) 页面下移一行(j):goDoCommand('cmd_scrollLineDown');
12.) 页面上移一行(k):goDoCommand('cmd_scrollLineUp');
13.) 页面左移一栏(h): goDoCommand('cmd_scrollLeft');
14.) 页面右移一栏(l): goDoCommand('cmd_scrollRight');
15.) 后退一页(z):BrowserBack();
16.) 前进一页(x):BrowserForward();
17.) 在当前页面浏览指定网站(F1):gBrowser.loadURI('
http://www.newsmth.net/');
18.) 在新标签中浏览剪贴板中的网址(p):
var paste = readFromClipboard();
if(!paste) return;
gBrowser.selectedTab = gBrowser.addTab(paste);
19.) 设置网页编码在GB2312和UTF-8之间切换(alt+g):
var docCharset = getBrowser().docShell.QueryInterface(Components.interfaces.nsIDocCharset);
var orig_charset = docCharset.charset;
if(orig_charset!='GB2312'){
SetForcedCharset('GB2312');
} else {
SetForcedCharset('UTF-8');
}