Hatena::Groupkeysnail

basyura snail

2011-02-06

るりまサーチで更に早く検索する

| 19:50 |  るりまサーチで更に早く検索する - basyura snail を含むブックマーク はてなブックマーク -  るりまサーチで更に早く検索する - basyura snail

みんな大好き Ruby のリファレンス検索サービス「るりまサーチ(最速Rubyリファレンスマニュアル検索!)」を使ってサクっと検索する。

プロンプトを立ちあげて入力

shell: rurema 検索する単語

f:id:basyura:20110206193455p:image

Enter で検索

f:id:basyura:20110206193456p:image

以下を keysnail の設定ファイに書く。

key.setGlobalKey(['C-x','C-r'], function (ev, arg) {
    shell.input("rurema ");
  });
shell.add("rurema" , M({ja: "るりまサーチ", en: "rurema search"}) ,
  function(argx , extra) {
    let url  = "http://doc.ruby-lang.org/ja/search/version:1.9.2/";
    let list = extra.left.split(/\s+/)
    for(let i = 0 ; i < list.length ; i++) {
      url += 'query:' + encodeURIComponent(list[i]) + '/';
    }
    gBrowser.loadOneTab(url, null, null, null, extra.bang);
  },
  {
    bang      : true,
    literal   : 0,
    completer : function (args, extra) {
      let engines = [util.suggest.ss.getEngineByName("Google")];
      return completer.fetch.suggest(engines, true)(extra.left || "", extra.whole || "");
    },
  },
  true);

ショートカットキーを指定しておけばさらに早く!(ここでは C-x C-r で定義)

関係ないけど for 文をもうちょっとカッコよく書けないものか。

moozmooz2011/02/12 22:29おお,これは便利ですね.早速登録しました.

>関係ないけど for 文をもうちょっとカッコよく書けないものか。

カッコ良いかは分かりませんが,次のような書き方もできますね.多少 Ruby っぽいかと思います.

url += extra.left.split(/\s+/)
.map(function (q) "query:" + encodeURIComponent(q) + "/")
.join("");

basyurabasyura2011/02/13 18:31map ですか!
勉強になります。

トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20110206

2010-08-09

AutoPagerize for Greasemonkey のセパレータのスタイルを変える

| 21:01 |  AutoPagerize for Greasemonkey のセパレータのスタイルを変える - basyura snail を含むブックマーク はてなブックマーク -  AutoPagerize for Greasemonkey のセパレータのスタイルを変える - basyura snail

セパレータの表示が気に入らなくてバージョンアップがあるたびに手を入れてた。スタイルの変更をすればいいことに気がつく。

f:id:basyura:20100809204411p:image

_keysnail.js に書く

style.register(<><![CDATA[
    .autopagerize_page_separator {
        display:none;
    }
    .autopagerize_link {
        text-decoration : none !important;
        color     : #8ec1da !important;
    }
    .autopagerize_page_info {
        background-color : #8ec1da;
        font-size : 6px;
        height    : 4px;
        color     : #8ec1da !important;
		text-align:right;
    }
]]></>.toString() , style.XHTML);
トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20100809

2010-07-27

カーソル移動とページ内検索

| 23:25 |  カーソル移動とページ内検索 - basyura snail を含むブックマーク はてなブックマーク -  カーソル移動とページ内検索 - basyura snail

テキストエリア内のカーソル移動と、ページ内検索で割り当てたいキーが被るのでどうしようかと試行錯誤。検索バーの存在を確認して処理を切り替えればいいことに気がついた(遅い)。

  • gFindBar が表示されていれば検索中とみなしてテキストエリア内で検索を行う。
  • gFindBar が表示されていなければ編集中とみなしてテキストエリア内でカーソル移動を行う。

アドレスバーで C-n C-p を使って選択することもできる♪

key.setGlobalKey('C-f', function (ev) {
    getBrowser().mTabContainer.advanceSelectedTab(1, true);
}, 'ひとつ右のタブへ');

key.setGlobalKey('C-b', function () {
    getBrowser().mTabContainer.advanceSelectedTab(-1, true);
	ev.cancelBubble = true;
}, 'ひとつ左のタブへ');

key.setEditKey('C-f', function (aEvent) {
    key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_RIGHT, true);
}, '右');

key.setEditKey('C-b', function (aEvent) {
    key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_LEFT, true);
}, '左');

key.setEditKey('C-p', function (aEvent) {
   if(!command.gFindBar.hidden) {
        command.iSearchBackward();
        return;
    }
    key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_UP, true);
}, '上');

key.setEditKey('C-n', function (aEvent) {
    if(!command.gFindBar.hidden) {
        command.iSearchForward();
        return;
    }
    key.generateKey(aEvent.originalTarget, KeyEvent.DOM_VK_DOWN, true);
}, '下');

key.setGlobalKey('C-n', function () {
    command.iSearchForward();
}, 'インクリメンタル検索', true);

key.setGlobalKey('C-p', function () {
    command.iSearchBackward();
}, '逆方向インクリメンタル検索', true);
トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20100727

2010-07-18

サイトごとにキーバインドを定義

| 20:30 |  サイトごとにキーバインドを定義 - basyura snail を含むブックマーク はてなブックマーク -  サイトごとにキーバインドを定義 - basyura snail

はてブなど、独自のキーバインドが既に定義されている場合は keysnail の設定がじゃまになる場合があるので blackList に定義していた。

key.blackList = [
    'http://b.hatena.ne.jp/basyura/*',
    'http://smart.fm/*'
];

困るのは一部のキーバインドで、全て使えなくなるけど・・・と我慢していた。

けど、plugin が既にあった orz

Define keybindings by each site, prefer certain sites shortcut keys

Site local keymap

設定

plugins.options["site_local_keymap.local_keymap"] = {
	"^http://b.hatena.ne.jp/" : [
		["j" , null],
		["k" , null]
	],
	"^http://smart.fm/" : [
		["j" , null],
		["k" , null]
	]
}

また一つ使いやすくなった。

トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20100718

2010-04-13

アクセスキーを殺・・・しきれなかった

| 22:39 |  アクセスキーを殺・・・しきれなかった - basyura snail を含むブックマーク はてなブックマーク -  アクセスキーを殺・・・しきれなかった - basyura snail

Wikipedia のアクセスキーが鬱陶しいという声があったので。

次のようなコードを .keysnail.js の末尾にでも張り付けておけば、おそらくうまくいく。

http://d.hatena.ne.jp/mooz/20091206

全部殺しちゃうと投稿できない・・・。投稿のとこだけ他のキーに差し替えたいけどうまくいかなかったので、それだけは殺さないことで諦めた・・・それほど実害ないし(言い訳)

for (let i = 0; i < nodes.snapshotLength; i++)
{
  let node = nodes.snapshotItem(i);
  // 追加
  if(node.getAttribute('accesskey') == "u") {
    continue;
  }
  let clone = node.cloneNode(true);
  clone.removeAttribute('accesskey');
  node.parentNode.replaceChild(clone, node);
トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20100413