ほるっふー

自宅のベランダに鳩が住み着いた話を5万人の前ですること。

emacs文字列補完機能 auto-complete を使いたい

emacsでの編集中に一度打った変数名などを補完してくれるauto-complete

様々なサイトやGitHubのページなどが紹介されていますがGitHubの開発ライセンスが必要と言われインストールすることができませんでした。

当方の環境は、GNU/Linux と Mac OS X Yosemite 10.10.3 です。

 

の中で紹介されているこちらのリンクからダウンロードできますできません。(追記2016/09/07 リンク切れしていますね)

http://cx4a.org/pub/auto-complete/auto-complete-1.3.1.zip

 

$ make

$ make install DIR=~/.emacs.d/

で出力された結果の

Add the following code to your .emacs:

より下の行を.emacsに書き加えることでauto-completeへのパスが張られ使えるようになります。

 

pと打つだけでクラスの属性が候補に出てきてくれたりと非常に優秀。

勿論自分で用意した変数名も候補に挙がります。

f:id:blacksmithltw:20150522225341p:plain

 

Tabキー以外に矢印キーの上下でも候補を選択する事ができるのですが、これが鬱陶しいという人はソースコードのauto-complete.elで

 

(defvar ac-completing-map

  (let ((map (make-sparse-keymap)))

    (define-key map "\t" 'ac-expand)

    (define-key map "\r" 'ac-complete)

    (define-key map (kbd "M-TAB") 'auto-complete)

    (define-key map "\C-s" 'ac-isearch)

 

    (define-key map "\M-n" 'ac-next)

    (define-key map "\M-p" 'ac-previous)

;;    (define-key map [down] 'ac-next)

;;    (define-key map [up] 'ac-previous)

 

    (define-key map [f1] 'ac-help)

    (define-key map [M-f1] 'ac-persist-help)

    (define-key map (kbd "C-?") 'ac-help)

    (define-key map (kbd "C-M-?") 'ac-persist-help)

 

のように [down] [up]の行をコメントアウトした上でmakeし直せば反映されます。