読者です 読者をやめる 読者になる 読者になる

auto-complete-mode パッケージを作ってみた

Vine Linux Emacs

昨晩、VineSeed および Vine Linux 6 向けに http://cx4a.org/software/auto-complete/index.ja.html のパッケージを、auto-complete-mode パッケージとして put しました。すでに、リポジトリに反映されているので、すぐに試せます。

vine-default-auto-complete.el により、基本的な標準設定済みですので、とくに何も設定せずに利用可能です。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Auto Complete Mode v1.3.1 の設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; (add-to-list 'load-path "/usr/share/emacs-23.3/site-lisp/auto-complete")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories 
	     "/usr/share/emacs-23.3/site-lisp/auto-complete/ac-dict")
(ac-config-default)

TeX と Auto Complete Mode との連携

■[Emacs][TeX][Vine] auto-complete.el にやてふ拡張を作ってみた [id:munepi:20090304:1236187280] もそのまま使えますが、世の中、同じようなことを考える人がたくさんいるもんです。auto-complete-latex.el を作っている方もおられますね。正直、私がやろうとしていた prefix により補完候補を絞り込む機能をほとんど実装しておられます。auto-complete-latex、オススメしておきます!いや、イチオシです。

auto-complete-yatex は…、気が向いたら更新するとしよう。 以下に晒しました。

https://gist.github.com/munepi/5298924

auto-complete-yatex.el の設定は、いたって簡単!以下の設定を追加するだけ。

;; ;; 必要であれば、以下のような感じで追加していく
;; (setq ac-source-yatex-user-candiates
;;       (list 
;; 	    "phantom" "hphantom" "vphantom"
;; 	    "makeatletter" "makeatother"
;; 	    ))
(require 'auto-complete-yatex)

auto-complete-yatex.el は、特別にたくさんの辞書を持っていないので、動作が軽いです。

何度も言いますが、auto-complete-latex、イチオシです。

wnn7egg との相性が悪い!?

wnn7egg を使っている環境で、Auto Complete Mode v1.3.1 を試したところ、日本語入力モードのときに、auto-complete-mode による補完が乱れてしまうみたいです。

とりあえず、toggle-input-method () に defadvice して、wnn7egg による日本語入力モードのときには auto-complete-mode を off にするようにしてみました。

(defadvice toggle-input-method (after wnn7egg-activate activate)
  (if wnn7-activate
      (global-auto-complete-mode 0) (global-auto-complete-mode 1)))

一言、言いたいことがあります!wnn7egg-activate が Not documented. ってどーゆーことー(笑

一般には、以下のようにしちゃってよいみたいです。

(defadvice toggle-input-method (after current-input-method activate)
  (if current-input-method
      (global-auto-complete-mode 0) (global-auto-complete-mode 1)))