auto-complete (2)
あ、minor-mode のキー設定のやり方、ずーっと勘違いしてた。fallback しなくても nil にしてあげればよかったのか。
auto-complete のカスタマイズ
;; 関数名が `ac-' で始まらないといけない。 (defun ac-my-complete () (interactive) (if my-ac-explicit-complete (ac-complete) (ac-abort) (ac-fallback-command))) (defvar my-ac-explicit-complete nil) (defvar my-ac-explicit-complete-commands '(ac-next ac-previous ac-isearch)) (defun my-ac-set-explicit-complete () (setq my-ac-explicit-complete (memq this-command my-ac-explicit-complete-commands))) ;; キー設定 (eval-after-load 'auto-complete '(progn (define-key ac-completing-map "\C-i" nil) (define-key ac-completing-map (kbd "M-TAB") nil) (define-key ac-completing-map "\C-s" nil) (define-key ac-completing-map "\r" 'ac-my-complete) (define-key ac-completing-map "\ei" 'ac-expand) (define-key ac-completing-map "\e\r" 'ac-complete) (define-key ac-completing-map "\es" 'ac-isearch))) (add-hook 'auto-complete-mode-hook (lambda () (add-hook 'post-command-hook 'my-ac-set-explicit-complete)))
とはいえ、たまに書くだけの ruby とか python のときは auto-complete が便利だけど、最近 elisp 書くときはほとんど C-[ C-i ばっかりな気がする。やっぱり慣れた方使っちゃう。