Hatena::ブログ(Diary)

わからん

2010.12.05

[] auto-complete.el と look コマンドを使って英単語を補完する

look コマンドは、英単語のつづりを調べるコマンドです。Ubuntu ならすぐに利用できます。Fedora なら sudo yum install words でインストールできるようです。Mac はわかりません。Mac でもすぐに利用できるらしいです。


▼ こんな挙動です

f:id:kitokitoki:20101205123826p:image


これをテキストエディター emacs で auto-complete.el のインターフェースで利用できれば便利です。 auto-complete をインストールし、dot.emacs に以下を追記すれば、M-h で補完できます。

(require 'auto-complete-config)

(defun my-ac-look ()
  "look コマンドの出力をリストで返す"
  (interactive)
  (unless (executable-find "look")
    (error "look コマンドがありません"))
  (let ((search-word (thing-at-point 'word)))
    (with-temp-buffer
      (call-process-shell-command "look" nil t 0 search-word)
      (split-string-and-unquote (buffer-string) "\n"))))

(defun ac-complete-look ()
  (interactive)
  (let ((ac-menu-height 50)
        (ac-candidate-limit t))
  (auto-complete '(ac-source-look))))

;; 表示数制限を変更しない場合
;;(defun ac-complete-look ()
;;  (interactive)
;;  (auto-complete '(ac-source-look)))

(defvar ac-source-look
  '((candidates . my-ac-look)
    (requires . 2)))  ;; 2文字以上ある場合にのみ対応させる

;; キーは好きなのを割り当てて下さい
(global-set-key (kbd "M-h") 'ac-complete-look)

▼ accom まで打って、スペルに自信がないので M-h を押下

f:id:kitokitoki:20101205123825p:image


▼ 絞り込みにも対応

f:id:kitokitoki:20101205123821p:image


いちいち M-h で明示的に呼び出すのが面倒なら、以下のように設定します。これで自動的に候補が出てきます。重そうなのでお勧めはしません。

(setq ac-source-look
  '((candidates . my-ac-look)
    (requires . 4)))  ;; 4文字以上の入力のみ対象とするように変更. 2 だと候補が多すぎてうっとうしい

;; 補完対象とするモードの ac-sources に対して
(push 'ac-source-look ac-sources) ;追加

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

Google