EmacsでもGoogle検索したい!(search-web.el, google-this)
スポンサーリンク
Google先生をEmacsから呼んじゃいましょう。2通り方法を記します。
search-web.el
google以外にも、yahoo, alcとかweblioとか、いろいろなサイトで検索ができるすごいやつ。
インストール
list-packages でsearch-web.elを探す。あとは、いつもの様にクリック2回でインストール。
gitで探す。
git clone https://github.com/tomoya/search-web.el.git
中のsearch-web.elをEmacsのパスの通ったところに置く。
.emacsの設定
Emacsの単語をブラウザで検索 - 勉強日記 を参考に、search-web.elの設定。
(require 'search-web) (define-prefix-command 'search-web-map) (global-set-key (kbd "M-i") 'search-web-map) (global-set-key (kbd "M-i g") (lambda () (interactive) (search-web-dwim "google"))) (global-set-key (kbd "M-i M-i") (lambda () (interactive) (search-web-dwim))) (defun search-web-dwim (&optional arg-engine) "transient-mark-mode がオンの時はリージョンを,オフの時はカーソル位置の単語を検索する." (interactive) (cond ( ;; (transient-region-active-p) (region-active-p) (and transient-mark-mode mark-active) (search-web-region arg-engine)) (t (search-web-at-point arg-engine))))
検索を実行しようとすると、transient-region-active-pあたりでおかしくなってうまくいかない。 CmdNote - [emacs,elisp] transient-markがonでmarkがアクティブかどうか調べる このページを元に、改造した。
(transient-region-active-p)
の部分を
(region-active-p) (and transient-mark-mode mark-active)
と変えてうまくいった。
使う
検索したい単語の上にカーソルを置くか、リージョン選択でM-i g
でgoogle検索ができる。
google-this
google検索できる。search-web.elより機能は少ない。
インストール
- list-packages でgoogle-thisを探す。あとは、いつもの様にクリック2回でインストール。
.emacsの設定
(require 'google-this) (setq google-this-location-suffix "co.jp") (defun google-this-url () "URL for google searches." (concat google-this-base-url google-this-location-suffix "/search?q=%s&hl=ja&num=10&as_qdr=y5&lr=lang_ja")) (global-set-key "\C-cg" 'google-this)
/search?q=%s&hl=ja&num=10&as_qdr=y5&lr=lang_ja
の部分は、日本語で10件、5年以内の検索結果をだす。好みによって変える。
(参考:Google検索のパラメータ(URLパラメータ)一覧 - fragment.database.)
使う
特定の単語の上にカーソルを置くか、リージョン選択で、C-c g
。