engine-mode

概要

engine-mode は Emacs から様々な検索エンジンで検索するためのパッケージ defengine というマクロを使ってエンジンを定義することで対応する検索エンジンを簡単に増やすことができる。デフォルトでは特に何も定義されていないので自分で定義していく必要がある

インストール

engine-mode は el-get でレシピを提供されていないので自前で用意している。

(:name engine-mode
       :website "https://github.com/hrs/engine-mode"
       :description "Define and query search engines"
       :type github
       :pkgname "hrs/engine-mode")

そしてこれを el-get-bundle でインストールして有効化している。

(el-get-bundle engine-mode)
(engine-mode 1)

エンジン定義

前述したように自分で定義しないと何も検索ができない。とりあえず今は Ruby/Rails 系を少しだけ定義した上で GitHub のコード検索もできるようにしている

(defengine rurema-3.1
  "https://rurema.clear-code.com/version:3.1/query:%s/")

(defengine rurema-3.2
  "https://rurema.clear-code.com/version:3.2/query:%s/")

(defengine rurema-3.3
  "https://rurema.clear-code.com/version:3.3/query:%s/")

(defengine rails
  "https://apidock.com/rails/search?query=%s")

(defengine rspec
  "https://apidock.com/rspec/search?query=%s")

(defengine github-code
  "https://github.com/search?type=code&q=%s"
  :browser 'browse-url-default-browser)

その他の設定

engine-mode はデフォルトだと browse-url-browser-function で結果を開くが Emacs 内で完結する方が便利かもと思って今は emacs-w3m で検索結果ページを開くようにしている

(setopt engine/browser-function 'w3m-browse-url)

なお検索結果は大体 emacs-w3m だとそのままではコンテンツ本体の前にメニューなどが表示されて邪魔くさいので w3m-filter の機能を使ってそれらの表示を抑制している。

そのあたりは emacs-w3m の設定ページ に記述している