Hatena::Groupvimperator

vimpがあればなんでもできるっ! RSSフィード

2010ねん01がつ03にち、

MSDNで今見ているページの言語を切り替えるコマンド

16:21 | MSDNで今見ているページの言語を切り替えるコマンド - vimpがあればなんでもできるっ! を含むブックマーク はてなブックマーク - MSDNで今見ているページの言語を切り替えるコマンド - vimpがあればなんでもできるっ!

最近*1MSDNのページレイアウトが新しくなってます。

デフォルトのレイアウトではよけいなヘッダとかが表示されなくなって見やすくて、とても良いと思います。

しかし、たまに今見ているページを英語で見たり日本語で見たりしたいとき、旧レイアウトであった言語切り替えのメニューも使えなくなったので、ちょっと困っていた。*2

と、いうことで久しぶりにvimpのコマンド書いた。プラグインにするほどのものじゃあないので、とりあえず .vimperatorrc などに突っ込む感じで使う。

// MSDNの言語切り替え
js<<EOM
commands.addUserCommand( ["MSDNLocaleChange"], "Change msdn page's locale",
    function(args) {
        var parsed_uri = buffer.URL.match(/(^http:\/\/msdn\.microsoft\.com\/)([^\/]+)(\/.*)/);
        if (!parsed_uri)
            return;
        liberator.open(parsed_uri[1] + args[0] + parsed_uri[3]);
    }, {
        completer: function(context) {
            context.title = ["locale"];
            context.completions = [["ja-jp"], ["en-us"]];
        },
        argCount: "1"
    },
    true
);
EOM

以下のようにコマンドで言語が切り替えられます。

今見ているページを英語に

:MSDNLocaleChange en-us

今見ているページを日本語に

:MSDNLocaleChange ja-jp

*1:結構前から?

*2:クラシックレイアウトに変更すればいいんだけど、いちいち切り替えるのがメンドクサイ

トラックバック - http://vimperator.g.hatena.ne.jp/snaka72/20100103

2009ねん12がつ12にち、

livedoorReaderでキーに割り当てられている関数を調べる

| 13:02 | livedoorReaderでキーに割り当てられている関数を調べる - vimpがあればなんでもできるっ! を含むブックマーク はてなブックマーク - livedoorReaderでキーに割り当てられている関数を調べる - vimpがあればなんでもできるっ!

自分メモ

spaceバーに割り当てられている関数を調べる場合。

:echo content.wrappedJSObject.Keybind._keyfunc['space']

ちなみに、reader_pref.x.x.x.jsにどのキーにどの関数を割り当てるかが定義されている。

:echo content.wrappedJSObject.Keybind._keyfunc

すれば、キーバインドの一覧っぽいのが得られる

トラックバック - http://vimperator.g.hatena.ne.jp/snaka72/20091212

2009ねん09がつ16にち、

livedoorReaderで選択しているフィードをtombloo.jsからポストするための修正(was;tombloo.jsでlivedoorReaderで選択しているitemに応じたコマンドを表示するための修正(とりあえず))

| 01:01 | livedoorReaderで選択しているフィードをtombloo.jsからポストするための修正(was;tombloo.jsでlivedoorReaderで選択しているitemに応じたコマンドを表示するための修正(とりあえず)) - vimpがあればなんでもできるっ! を含むブックマーク はてなブックマーク - livedoorReaderで選択しているフィードをtombloo.jsからポストするための修正(was;tombloo.jsでlivedoorReaderで選択しているitemに応じたコマンドを表示するための修正(とりあえず)) - vimpがあればなんでもできるっ!

livedoorReaderでフィードを読んでいるとき、ブクマしたい場合右クリックでコンテキストメニューを開いて「Link - LDR」を選択しないと、livedoorReader自身がブクマされてしまいます。

これがいちいち面倒だったので、tombloo.jsのコマンド一覧に表示できるようにしてみた。

以下のようになります。

http://gyazo.com/2eb862fb89142e56de7fa4e10138efa6.png

"Link\ -\ LDR"を選択すると、ちゃんと現在選択しているフィードがブクマ対象になります。

修正箇所

とりあえずいじってみた。やるんだったらもうちょっと抽象化して汎用的なコードにしたほうがいい気がするけど、ねむいのでここまで。

--- tombloo.js  (リビジョン 35109)
+++ tombloo.js  (作業コピー)
@@ -116,6 +116,16 @@
 function getContext() {
     const doc = window.content.document;
     const win = window.content.wrappedJSObject;
+
+    function getTarget() {
+        if (/^http:\/\/reader\.livedoor\.com/.test(buffer.URL)) {
+            let item = win.get_active_item && win.get_active_item(true);
+            return item ? item.element : doc;
+        } else {
+            return doc;
+        }
+    }
+
     return implant(
         implant(
             {
@@ -123,7 +133,7 @@
                 window:     win,
                 title:      doc.title.toString() || '',
                 selection:  win.getSelection().toString(),
-                target:     doc,
+                target:     getTarget(),
                 //event     : event,
                 //mouse     : mouse,
                 //menu      : gContextMenu,

参考

以下のエントリが参考になりました。

vimperatorでLDRからTomblooしたい - Clouder::Blogger

トラックバック - http://vimperator.g.hatena.ne.jp/snaka72/20090916

2009ねん09がつ05にち、

インストールしている拡張機能やグリモンを晒すためのワンライナ

| 16:22 | インストールしている拡張機能やグリモンを晒すためのワンライナ - vimpがあればなんでもできるっ! を含むブックマーク はてなブックマーク - インストールしている拡張機能やグリモンを晒すためのワンライナ - vimpがあればなんでもできるっ!

拡張機能

echo <ul>{[<li>{i.name+" "+i.version}</li> for each (i in Application.extensions.all) if (i.enabled) ].reduce(function(a,b) a+b)}</ul>

echopy.js入れてれば、"echo"を"echo!"にするだけで、クリップボードにもコピーしてくれる。

使用例

  • Add-on Collector 1.0.3
  • Delicious Bookmarks 2.1.062
  • FaviconizeTab 0.9.8.2
  • FiddlerHook 2.2.2.1
  • Firebug 1.4.2
  • Greasemonkey 0.8.20090123.1
  • Growl/GNTP 1.1.3
  • HateBUZZ! 0.0.4
  • IE Tab 1.5.20090525
  • Live HTTP headers 0.15
  • Microsoft .NET Framework Assistant 1.1
  • OpenLocalFile! 0.0.1
  • SamePlace 0.9.4.2009063011
  • Screenshot Pimp 1.5
  • Stylish 1.0.6
  • Tombloo 0.4.5
  • TwitterFox 1.8.3
  • twitter-fox-enhancer 1.1.0
  • VertTabbar 2.8.1
  • Vimperator 2.1
  • xmpp4moz 0.7.2.2009063010


グリモン

echo <ul>{[<li>{i.name}({i._filename})</li> for each(i in GM_getConfig().scripts)].reduce(function(a,b) a+b)}</ul>

使用例

トラックバック - http://vimperator.g.hatena.ne.jp/snaka72/20090905

2009ねん08がつ29にち、

いつも自分のブログのブクマ数がどのくらいなのか気になっている人のためのプラグイン

| 08:10 | いつも自分のブログのブクマ数がどのくらいなのか気になっている人のためのプラグイン - vimpがあればなんでもできるっ! を含むブックマーク はてなブックマーク - いつも自分のブログのブクマ数がどのくらいなのか気になっている人のためのプラグイン - vimpがあればなんでもできるっ!

http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/ego_counter.js

作った。

まあ、ずいぶん前から、vimperatorrc.js に直書きしてたコードなんだけど

グリモンで似たような事してる人がいたので、もしかしたら需要あるかも...と思ったのでプラグインにした。

使い方

ego_counter.jsをpluginディレクトリに突っ込んで、以下のようにrcファイルなどでグローバル変数を設定してください。

let g:ego_counter_uri = 'http://d.hatena.ne.jp/snaka72'

これで、vimpを再起動すると...

http://gyazo.com/c2aa008bc3d51cd99dc1e85fad751305.png

のようにステータスラインにブクマ数が表示されます。

よろしかったら、どうぞ。

追記

仕様を書いてなかった。

  • 10分毎に更新するようになってます
  • 更新する毎に色が変わります
  • カウンターをクリックすると強制的に更新します
トラックバック - http://vimperator.g.hatena.ne.jp/snaka72/20090829