Hatena::Groupvimperator

ヴィンペラートル・オクタウィアヌス RSSフィード

記事一覧 | はてダ
 | 

2010-01-19

[tab]open ほげ したときに ほげ を既に開いてたら新しく開かずにそのタブに切り替える

| 22:20 |  [tab]open ほげ したときに ほげ を既に開いてたら新しく開かずにそのタブに切り替える - ヴィンペラートル・オクタウィアヌス を含むブックマーク はてなブックマーク -  [tab]open ほげ したときに ほげ を既に開いてたら新しく開かずにそのタブに切り替える - ヴィンペラートル・オクタウィアヌス

@retletさんのアイデアから

http://twitter.com/retlet/statuses/7939519490

[tab]open ほげ したときに ほげ を既に開いてたら新しく開かずにそのタブに切り替えたい #vimperator

これはいいアイデア!

ネタが被ってたらごめんなさい!

色々と問題あるかもしれないけど、とりあえず作ってみた

URL

http://github.com/voidy21/dotfiles/blob/master/.vimperator/plugin/opener.js

opener.js
(function () {
    function opener(where) {
        return function (args) {
            let index = 0;
            let url = util.stringToURLArray(args[0]).toString();
            for each ( [,tab] in tabs.browsers ) {
                if(url == tab.currentURI.spec){
                    tabs.select(index);
                    return;
                }
                ++index;
            }
            liberator.open(url,where);
        };
    }
 
    let open = commands.get("open");
    //let edit = commands.get("edit");
    let tabopen = commands.get("tabopen");
    open.action = opener(liberator.CURRENT_TAB);
    //edit.action = opener(liberator.CURRENT_TAB);
    tabopen.action = opener(liberator.NEW_TAB);
})();

(追記)問題発見

例えば:tabopen google testを2回やると、google.comとgoogle.co.jpでぶつかって上手く行かなそう

とりあえず仕様ということで・・・

(さらに追記)Vimperator2.3からは:editコマンドが無いみたいなので

コメントアウトしといた

素晴らしい改良版が!!!

id:nokturnalmortum++

opener.js をちょっと変更してみた - Death to false Web browser! - vimperatorグループ

Vimperator 本体のメソッドを書き換えるときの指針 - Death to false Web browser! - vimperatorグループ

こうやるとオリジナルのメソッド自身が使えるのかー

勉強になった!

 |