計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

auto-completeを使ってEmacsの補完を便利にする

auto-complete

自動的に補完候補をポップアップしてくれて、そこから語句を選べる。 動画を見るとわかりやすい


Auto Complete Mode for GNU Emacs - YouTube

昔は日本語のマニュアルページがあったのだが、今は見つからない。ここが公式サイトかどうかわからないが、githubのページをリンクしておく。

auto-complete/auto-complete · GitHub

インストール

Emacsのパッケージ管理機能を使ってmelpaからインストールすればよい。

Emacs24のパッケージ管理機能を使う - 計算物理屋の研究備忘録

設定

init.elに下記のように書いておく

;;
;; Auto Complete
;;
(require 'auto-complete-config)
(ac-config-default)
(add-to-list 'ac-modes 'text-mode)         ;; text-modeでも自動的に有効にする
(add-to-list 'ac-modes 'fundamental-mode)  ;; fundamental-mode
(add-to-list 'ac-modes 'org-mode)
(add-to-list 'ac-modes 'yatex-mode)
(ac-set-trigger-key "TAB")
(setq ac-use-menu-map t)       ;; 補完メニュー表示時にC-n/C-pで補完候補選択
(setq ac-use-fuzzy t)          ;; 曖昧マッチ

必須設定は下の2行だけ

(require 'auto-complete-config)
(ac-config-default)

これで使えるようになるはず。auto-completeが有効になっているとEmacsの下の方にACと表示される。

デフォルトでも多くのモードでauto-completeは自動的に有効になるが、たまにそうでないモードもあるので、そういうモードに出会ったら手動で(add-to-list 'ac-modes 'text-mode)のように追加している

auto-completeは自動的に候補をポップアップしてくれるが、トリガーキーを使って手動で候補を出すこともできる。ここでは(ac-set-trigger-key "TAB")のように、TABキーをトリガーキーに設定している

(setq ac-use-menu-map t)C-n/C-pで補完候補を選択できるようになる
(setq ac-use-fuzzy t)と書いておけば曖昧なスペルでも補完してくれる。これを使うにはfuzzy.elが必要になるので、使うならEmacsのパッケージ管理ツールからfuzzyもインストールしておく