<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xml:lang="ja">
	<channel>
		<title>vimpがあればなんでもできるっ！</title>
		<link>http://vimperator.g.hatena.ne.jp/snaka72/</link>
		<description>vimpがあればなんでもできるっ！</description>
		<dc:creator>snaka72</dc:creator>


		<item>
			<title>MSDNで今見ているページの言語を切り替えるコマンド</title>
			<link>http://vimperator.g.hatena.ne.jp/snaka72/20100103/1262503316</link>

			<description><![CDATA[
		<div class="section">
			<p>最近<span class="footnote"><a href="http://vimperator.g.hatena.ne.jp/snaka72/#f1" name="fn1" title="結構前から？">*1</a></span>MSDNのページレイアウトが新しくなってます。</p>
			<p>デフォルトのレイアウトではよけいなヘッダとかが表示されなくなって見やすくて、とても良いと思います。</p>
			<p>しかし、たまに今見ているページを英語で見たり日本語で見たりしたいとき、旧レイアウトであった言語切り替えのメニューも使えなくなったので、ちょっと困っていた。<span class="footnote"><a href="http://vimperator.g.hatena.ne.jp/snaka72/#f2" name="fn2" title="クラシックレイアウトに変更すればいいんだけど、いちいち切り替えるのがメンドクサイ">*2</a></span></p>
			<p>と、いうことで久しぶりに<a class="keyword" href="http://vimperator.g.hatena.ne.jp/keyword/vimp">vimp</a>のコマンド書いた。<a class="keyword" href="http://vimperator.g.hatena.ne.jp/keyword/%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3">プラグイン</a>にするほどのものじゃあないので、とりあえず .vimperatorrc などに突っ込む感じで使う。</p>
<pre class="syntax-highlight">
<span class="synComment">// MSDNの言語切り替え</span>
js&lt;&lt;EOM
commands.addUserCommand( <span class="synIdentifier">[</span><span class="synConstant">&quot;MSDNLocaleChange&quot;</span><span class="synIdentifier">]</span>, <span class="synConstant">&quot;Change msdn page's locale&quot;</span>,
    <span class="synIdentifier">function</span>(args) <span class="synIdentifier">{</span>
        <span class="synIdentifier">var</span> parsed_uri = buffer.URL.match(<span class="synConstant">/(^http:\/\/msdn\.microsoft\.com\/)([^\/]+)(\/.*)/</span>);
        <span class="synStatement">if</span> (!parsed_uri)
            <span class="synStatement">return</span>;
        liberator.open(parsed_uri<span class="synIdentifier">[</span>1<span class="synIdentifier">]</span> + args<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span> + parsed_uri<span class="synIdentifier">[</span>3<span class="synIdentifier">]</span>);
    <span class="synIdentifier">}</span>, <span class="synIdentifier">{</span>
        completer: <span class="synIdentifier">function</span>(context) <span class="synIdentifier">{</span>
            context.title = <span class="synIdentifier">[</span><span class="synConstant">&quot;locale&quot;</span><span class="synIdentifier">]</span>;
            context.completions = <span class="synIdentifier">[[</span><span class="synConstant">&quot;ja-jp&quot;</span><span class="synIdentifier">]</span>, <span class="synIdentifier">[</span><span class="synConstant">&quot;en-us&quot;</span><span class="synIdentifier">]]</span>;
        <span class="synIdentifier">}</span>,
        argCount: <span class="synConstant">&quot;1&quot;</span>
    <span class="synIdentifier">}</span>,
    <span class="synConstant">true</span>
);
EOM
</pre>

			<p>以下のようにコマンドで言語が切り替えられます。</p>
			<p>今見ているページを英語に</p>
<pre>
:MSDNLocaleChange en-us
</pre>

			<p>今見ているページを日本語に</p>
<pre>
:MSDNLocaleChange ja-jp
</pre>

		</div>
		<div class="footnote">
			<p class="footnote"><a href="http://vimperator.g.hatena.ne.jp/snaka72/#fn1" name="f1">*1</a>：結構前から？</p>
			<p class="footnote"><a href="http://vimperator.g.hatena.ne.jp/snaka72/#fn2" name="f2">*2</a>：クラシックレイアウトに変更すればいいんだけど、いちいち切り替えるのがメンドクサイ</p>
		</div>
]]></description>

			<dc:creator>snaka72</dc:creator>

			<pubDate>Sun, 03 Jan 2010 07:21:56 GMT</pubDate>



		</item>

		<item>
			<title>[ldr][tips]livedoorReaderでキーに割り当てられている関数を調べる</title>
			<link>http://vimperator.g.hatena.ne.jp/snaka72/20091212/1260590530</link>

			<description><![CDATA[
		<div class="section">
			<p>自分メモ</p>
			<p>spaceバーに割り当てられている関数を調べる場合。</p>
<pre>
:echo content.wrappedJSObject.Keybind._keyfunc&#91;&#39;space&#39;]
</pre>

			<p>ちなみに、<code>reader_pref.x.x.x.js</code>にどのキーにどの関数を割り当てるかが定義されている。</p>
<pre>
:echo content.wrappedJSObject.Keybind._keyfunc
</pre>

			<p>すれば、キーバインドの一覧っぽいのが得られる</p>
		</div>
]]></description>

			<dc:creator>snaka72</dc:creator>

			<pubDate>Sat, 12 Dec 2009 04:02:10 GMT</pubDate>


			<category>ldr</category>

			<category>tips</category>


		</item>

		<item>
			<title>[tombloo.js][hack]livedoorReaderで選択しているフィードをtombloo.jsからポストするための修正(was;tombloo.jsでlivedoorReaderで選択しているitemに応じたコマンドを表示するための修正（とりあえず）)</title>
			<link>http://vimperator.g.hatena.ne.jp/snaka72/20090916/1253116865</link>

			<description><![CDATA[
		<div class="section">
			<p>livedoorReaderでフィードを読んでいるとき、ブクマしたい場合右クリックでコンテキストメニューを開いて「Link - LDR」を選択しないと、livedoorReader自身がブクマされてしまいます。</p>
			<p>これがいちいち面倒だったので、<a class="keyword" href="http://vimperator.g.hatena.ne.jp/keyword/tombloo%2ejs">tombloo.js</a>のコマンド一覧に表示できるようにしてみた。</p>
			<p>以下のようになります。</p>
			<p><a href="http://gyazo.com/2eb862fb89142e56de7fa4e10138efa6.png" class="http-image" target="_blank"><img src="http://gyazo.com/2eb862fb89142e56de7fa4e10138efa6.png" class="http-image" alt="http://gyazo.com/2eb862fb89142e56de7fa4e10138efa6.png"></a></p>
			<p>"Link\ -\ LDR"を選択すると、ちゃんと現在選択しているフィードがブクマ対象になります。</p>
			<h4>修正箇所</h4>
			<p>とりあえずいじってみた。やるんだったらもうちょっと抽象化して汎用的なコードにしたほうがいい気がするけど、ねむいのでここまで。</p>
<pre class="syntax-highlight">
--- tombloo.js  (リビジョン 35109)
+++ tombloo.js  (作業コピー)
@@ -116,6 +116,16 @@
 <span class="synIdentifier">function</span> getContext() <span class="synIdentifier">{</span>
     <span class="synStatement">const</span> doc = <span class="synStatement">window</span>.content.<span class="synStatement">document</span>;
     <span class="synStatement">const</span> win = <span class="synStatement">window</span>.content.wrappedJSObject;
+
+    <span class="synIdentifier">function</span> getTarget() <span class="synIdentifier">{</span>
+        <span class="synStatement">if</span> (<span class="synConstant">/^http:\/\/reader\.livedoor\.com/</span>.test(buffer.URL)) <span class="synIdentifier">{</span>
+            let item = win.get_active_item &amp;&amp; win.get_active_item(<span class="synConstant">true</span>);
+            <span class="synStatement">return</span> item ? item.element : doc;
+        <span class="synIdentifier">}</span> <span class="synStatement">else</span> <span class="synIdentifier">{</span>
+            <span class="synStatement">return</span> doc;
+        <span class="synIdentifier">}</span>
+    <span class="synIdentifier">}</span>
+
     <span class="synStatement">return</span> implant(
         implant(
             <span class="synIdentifier">{</span>
@@ -123,7 +133,7 @@
                 <span class="synStatement">window</span>:     win,
                 title:      doc.title.toString() || <span class="synConstant">''</span>,
                 selection:  win.getSelection().toString(),
-                target:     doc,
+                target:     getTarget(),
                 <span class="synComment">//event     : event,</span>
                 <span class="synComment">//mouse     : mouse,</span>
                 <span class="synComment">//menu      : gContextMenu,</span>
</pre>

			<h4>参考</h4>
			<p>以下のエントリが参考になりました。</p>
			<p><a href="http://blog.clouder.jp/archives/001111.html" class="exlink">vimperatorでLDRからTomblooしたい - Clouder::Blogger</a></p>
		</div>
]]></description>

			<dc:creator>snaka72</dc:creator>

			<pubDate>Wed, 16 Sep 2009 16:01:05 GMT</pubDate>


			<category>tombloo.js</category>

			<category>hack</category>


		</item>

		<item>
			<title>[一行野郎]インストールしている拡張機能やグリモンを晒すためのワンライナ</title>
			<link>http://vimperator.g.hatena.ne.jp/snaka72/20090905/1252135332</link>

			<description><![CDATA[
		<div class="section">
			<h4>拡張機能</h4>
<pre class="syntax-highlight">
echo &lt;ul&gt;<span class="synIdentifier">{[</span>&lt;li&gt;<span class="synIdentifier">{</span>i.name+<span class="synConstant">&quot; &quot;</span>+i.version<span class="synIdentifier">}</span>&lt;/li&gt; <span class="synStatement">for</span> each (i <span class="synStatement">in</span> Application.extensions.all) <span class="synStatement">if</span> (i.enabled) <span class="synIdentifier">]</span>.reduce(<span class="synIdentifier">function</span>(a,b) a+b)<span class="synIdentifier">}</span>&lt;/ul&gt;
</pre>

			<p><a class="keyword" href="http://vimperator.g.hatena.ne.jp/keyword/echopy%2ejs">echopy.js</a>入れてれば、"echo"を"echo!"にするだけで、クリップボードにもコピーしてくれる。</p>
			<h4>使用例</h4>
			<p><ul><li>Add-on Collector 1.0.3</li><li>Delicious Bookmarks 2.1.062</li><li>FaviconizeTab 0.9.8.2</li><li>FiddlerHook 2.2.2.1</li><li>Firebug 1.4.2</li><li>Greasemonkey 0.8.20090123.1</li><li>Growl/GNTP 1.1.3</li><li>HateBUZZ! 0.0.4</li><li>IE Tab 1.5.20090525</li><li>Live HTTP headers 0.15</li><li>Microsoft .NET Framework Assistant 1.1</li><li>OpenLocalFile! 0.0.1</li><li>SamePlace 0.9.4.2009063011</li><li>Screenshot Pimp 1.5</li><li>Stylish 1.0.6</li><li>Tombloo 0.4.5</li><li>TwitterFox 1.8.3</li><li>twitter-fox-enhancer 1.1.0</li><li>VertTabbar 2.8.1</li><li>Vimperator 2.1</li><li>xmpp4moz 0.7.2.2009063010</li></ul></p>			<br>

			<h4>グリモン</h4>
<pre class="syntax-highlight">
echo &lt;ul&gt;<span class="synIdentifier">{[</span>&lt;li&gt;<span class="synIdentifier">{</span>i.name<span class="synIdentifier">}</span>(<span class="synIdentifier">{</span>i._filename<span class="synIdentifier">}</span>)&lt;/li&gt; <span class="synStatement">for</span> each(i <span class="synStatement">in</span> GM_getConfig().scripts)<span class="synIdentifier">]</span>.reduce(<span class="synIdentifier">function</span>(a,b) a+b)<span class="synIdentifier">}</span>&lt;/ul&gt;
</pre>

			<h4>使用例</h4>
			<p><ul><li>Tada-lists more enhancer(tada-lists_more_enhancer.user.js)</li><li>Google M17N(google_m17n.user.js)</li><li>Minibuffer(minibuffer.user.js)</li><li>AutoPagerize(autopagerize.user.js)</li><li>LDRize(ldrize.user.js)</li><li>jaro(jaro.user.js)</li><li>GoogleBilingual(googlebilingual.user.js)</li><li>MDC link to en(mdc_link_to_en.user.js)</li><li>HatenaRealtimePreview(hatenarealtimepreview.user.js)</li></ul></p>
		</div>
]]></description>

			<dc:creator>snaka72</dc:creator>

			<pubDate>Sat, 05 Sep 2009 07:22:12 GMT</pubDate>


			<category>一行野郎</category>


		</item>

	</channel>
</rss>
