第一个是用来在http和https之间切换的插件。很多网页同时有http和https版本,在两个之间切换比较麻烦,所以就写了这个,
下面所有的代码都放在.vimperatorrc中,如果在windows下则放在_vimperatorrc下。
:js << EOF toggleSSL = function() { var regex = /^(http|https):\/\/(.*)$/; var result = regex.exec(buffer.URL); if (result) { if (result[1] == 'http') { var url = 'https://' + result[2] } else { var url = 'http://' + result[2] } liberator.execute('normal :open ' + url + '<CR>') } } EOF command ssl js toggleSSL()
这样便可以直接通过":ssl"来在http和https之间切换了,当然你也可以映射成一个快捷键,这样更方便,但我更喜欢键入命令,
我不太喜欢记太多快捷键。
不知道你没有这样的体验,当你通过google搜索出一大堆网站之后,随便点了一个网站之后,发现reset了,是不是很郁闷,
虽然你有代理,并且使用了AutoProxy,但是这不起作用,因为google的搜索結果并不是直接引向搜索页面,而是通过google重定向到
搜索页面的,搜索页面的网址是附在它的url参数内。这时就需要直接打开搜索页面,但是手工去这个操作很麻烦,于是就有了下面的
脚本:
:js << EOF ungoogle = function () { url = buffer.URL url = getUrlParam(url, 'url') liberator.echo('opening ' + url) liberator.open(url) } // copy from http://goo.gl/qf7J function getUrlParam(url, name) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec(url); if( results == null ) return ""; else return unescape(results[1]); } commands.addUserCommand (["ungoogle"], "extract url from google and open it", function (args) { ungoogle() } ); EOF
然后通过":ungoogle"可以直接打开搜索网页。你可能很难尝试这条命令,因为如果一切正常的话,google会自动重定向。
幸运的是,我们生活在天朝,不正常的时候并不少。你只要搜索技术文章,可能就会搜到blogspot或者google group上去,
点击它,接下的事就不说了。另外,如果不想reset,可以试试google的https搜索,但是我还不知道如何在Vimperator下
如何默认设置成使用https搜索,哪位知道,不妨告知下,不胜感激。
如果有些网站reset了,而本地代理服务器有时会不起作用,最近TOR就很不灵光,这时Web代理是个比较好的选择。我比较喜欢的代理是这个 http://qlba8.cn/xin.html。同样地,我选择写vimperator脚本来自动化一些事情,下面的有点长:
toggleProxy = function() { url = buffer.URL; var regex = /^http:\/\/\w+\.ip156\.com\/.*$/; if (regex.exec(buffer.URL)) { doc = window.content.document; form = doc.getElementsByTagName('form')[0]; elems = form.getElementsByTagName('input'); eurlElem = null; for (i = 0; i < elems.length; i++) { if (elems[i].name == 'u') eurlElem = elems[i]; } if (eurlElem) { url = eurlElem.value; liberator.open(url) } } else { liberator.open('http://www.qlba8.com/proxy.html'); maxWaitInterval = 200; maxWaitCount = 25; // 5s waitCount = 0 timeout = function() { waitCount++; if (waitCount > maxWaitCount) { liberator.echoerr('cannot connect'); } doc = window.content.document; form = doc.getElementsByTagName('form')[0]; if (!form) { setTimeout(timeout, maxWaitInterval); return } else { form.target = '' eurl = form.getElementsByTagName('input')[0] eurl.value = url form.submit() } } setTimeout(timeout, maxWaitInterval); } } EOF command proxy :js toggleProxy()
之后便可以使用命令":proxy"在使用web代理和直接访问之间切换了。
以上就是我今天要介绍的三个小插件,如果你有心的话,便知道它们的相关性很强。