Landscape トップページ | < 前の日 2005-09-01 2005-09-06 次の日 2005-09-07 >

Landscape - エンジニアのメモ 2005-09-06

xyzzy で選択範囲 (セレクション) を Google 検索


* xyzzy で選択範囲 (セレクション) を Google 検索

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [xyzzy]

テキストエディタ xyzzy で、選択範囲を Google で検索するようにしたい。

いままでは以下のようにして検索していた。

1. xyzzy で検索したい文字列を選択
2. クリップボードにコピー
3. タブブラウザ Sleipnir の検索ボックスに貼り付け
4. Sleipnir の検索ボタンを押す

4 ステップもあって手間がかかりすぎる。私はもう限界だと思った。xyzzy をカスタマイズして楽に検索できるようにしよう。

- xyzzy で選択範囲を Google 検索する

選択範囲を Google で検索したい。要するに文字列を URL エンコードしてブラウザに渡してやればいい。ちなみに、xyzzy では選択範囲をセレクションと呼ぶ。

リファレンスを見ながら自分で書こうかと思ったが、これは誰もが欲しいと思う機能なのできっと先達が作ってるはず。探してみたらあった。

xyzzy の音 - Google 検索
http://hie.s64.xrea.com/xyzzy/note/search.html#search-google
; Google 検索
(defun search-google (&optional str)
  (interactive)
  (unless str
    (setq str (read-string "Google: ")))
  (long-operation
    (let ((url (concat "http://www.google.co.jp/search?hl=ja&lr=lang_ja&num=50&ie=shift_jis&oe=euc-jp&q="
                      (si:www-url-encode str))))
      ;─────────────────────
      ; 1. 標準ブラウザを使う場合
      (shell-execute url t)
      ; 2. browser.dll & browserex.l を使う場合
      ;(bx::navigate url)
      ; 3. www-mode を使う場合
      ;(www-open-url url)
      ; 4. 指定したブラウザを使う場合
      ;(call-process (concat "C:/usr/local/MozillaFirebird/MozillaFirebird.exe " url))
      ;─────────────────────
      )))

; セレクションの文字列を Google 検索
(defun search-google-selection ()
  (interactive)
  (search-google (if (pre-selection-p)
                    (selection-start-end (beg end)
                      (buffer-substring beg end))
                  nil)))
(global-set-key '(#\C-c #\g) 'search-google-selection)

Google に渡すクエリを一部変更。num=50&ie=shift_jis&oe=euc-jp にした。ie=shift_jis を指定しないと文字化けする。

上記を .xyzzy ファイルに追加。そういえば最近は siteinit.l ではなく .xyzzy に追加することが多いな。バイトコンパイルする手間がかかるからな。

文字列を選択して、CTRL + C g を押すと、無事 Sleipnir のタブに Google 検索結果が表示された。やったー。

- xyzzy の右クリックメニューに「Google で検索」を追加

右クリックメニューにも「Google で検索」を追加したい。

カスタマイズ (xyzzy しょぼしょぼすくりぷと)
http://www.afis.to/~start/xyzzy/customize/

上記ページは「マウス右クリックに引用付き貼り付けを設定する」というサンプルを載せている。これを修正すればいい。できた。

; 右クリックメニューに「セレクションの文字列を Google 検索」を追加
(add-hook '*post-startup-hook*
        #'(lambda()
            (add-menu-item *app-popup-menu* nil "選択範囲をGoogle検索 (&G)"
                 'search-google-selection nil)))

じつに快適だ。なんで今までやらなかったんだろうと思うくらい。本当は中ボタンというかホイールクリックで Google 検索したいところだが、今日はもう時間がない。そのうちやろう。

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。