EmacsとChromeとのシームレスな連携
Emacsの設定にハマりだすとメールやインターネットプラウザなど全てのワークをEmacsで完結させよう…と考えるようになります。私もそんな一人でした。あれこれと設定を試すプロセスもまた楽しいからです。でもEmacsつながりでご縁ができたあるプログラマーの方のブログ Solist Work Blog を読んで少しずつ考え方が変わってきました。
気付かされたことは、全てをEmacsで扱うために窮屈な使い方をするより、作業デスクとしてのEmacsと使い慣れたシステムやアプリとが、シームレスな感覚で連携できることのほうが遥かに意義があるということでした。まだまだ試行錯誤中で十分にまとまった記事にはなっていませんが備忘録として公開します。
外部モニターを併用する
これは必須ではないと思いますが実際に使ってみると実に快適です。私の場合は、メインマシンMacbook Pro に 24インチの外部モニターを接続しています。解像度とかにこだわらなければ 1~2万円で十分実用できるモニター が購入できます。正面にMacbookのEmacs画面を見ながら右サイドの外部ディスプレーでChromeを開いている…というのが定番のスタイルです。
Macの場合、2画面のデスクトップを自在に切り替えできます。私の場合 ctrl+1 <-> ctrl+2 で切り替えできるように設定して、A画面でEmacs、B画面でiTermというような使い方ができます。外部ディスプレーの方は、ほぼChrome専用という使い方ですが、BetterTouchTool というアプリを使えば表示画面の移動などが自在にできるので便利です。
EmacsとChromeとのシームレスな連携
Emacsでブログの文章を書いたり、プログラミングを試行したりしているとき、作業の手を止めることなく検索できたり必要な資料の載っているWEBページを一発で閲覧できるとすごく便利です。一方、Chrome(プラウザ)の textarea に長文の入力が必要なときは、Emacsで入力できるほうがストレスが少ないです。以下はそのための設定です。
色々WEB検索するための設定
Melpaから search-web というPackageをインストールします。このパッケージは、google-thisと同じコンセプトで、regionやカーソルのある部分の単語など空気を読んで検索してくれます。
各検索サイトがどのような引数で修理しているかさえ解れば自由にカスタマイズして応用できます。WEBページからkeywordを入力して検索するとその結果がURLボックスに表示されます。表示されたURLから引数を分析すればいいのです。私の場合、俳句でよく使う 古語検索/類語検索/季語検索などを登録しています。
(use-package search-web)
(add-to-list 'search-web-engines '("weblio" "http://weblio.jp/content/%s" nil))
(add-to-list 'search-web-engines '("kobun" "http://kobun.weblio.jp/content/%s" nil))
(add-to-list 'search-web-engines '("ruigo" "http://thesaurus.weblio.jp/content/%s" nil))
(add-to-list 'search-web-engines '("kigo" "http://www.mysai.net/cgi-bin/kigo_search.cgi?txtKigo=%s&rdoSelect=1" nil))
(add-to-list 'search-web-engines '("github" "https://github.com/search?utf8=✓&q=%s&ref=simplesearch" nil))
(add-to-list 'search-web-engines '("qitta" "https://qiita.com/search?q=%s" nil))
(add-to-list 'search-web-engines '("post" "https://postcode.goo.ne.jp/search/q/%s/" nil))
(add-to-list 'search-web-engines '("earth" "https://earth.google.com/web/search/%s/" nil))
(bind-key
"s-s"
(defhydra hydra-search-web (:hint nil :exit t)
"
[Search] _a_:Amazon _g_:Google _m_:Maps _e_:Earth _h_:GitHub _q_:Qitta _w_:Weblio _p_:Post _b_:古文 _r_:類語"
("a" (search-web-dwim "amazon jp"))
("e" (search-web-dwim "earth"))
("g" (search-web-dwim "google"))
("m" (search-web-dwim "google maps"))
("h" (search-web-dwim "github"))
("q" (search-web-dwim "qitta"))
("w" (search-web-dwim "weblio"))
("p" (search-web-dwim "post"))
("k" (search-web-dwim "kigo"))
("b" (search-web-dwim "kobun"))
("r" (search-web-dwim "ruigo"))))
お気に入りのページを開いたりアプリを起動させたりするための設定
Melpaにあるpackage hydra を使うことでお好みのミニバッファーメニューを構築できます。主にEmacsの編集をしているときに必要となるサイトを設定しておくと便利です。私の場合、Emacsから起動できたら便利かなと思うApplicationもいくつか設定しています。