auto-complete.elの環境整備
auto-complete.el便利 - 技術日記@kiwanami
ac-next-or-next-line/ac-previous-or-previous-lineは気に入ったのでそのまま流用。「;」で補完確定はホームポジション上だけになかなかいいと思う。名案。
C-M-p/C-M-nにac-previous/ac-nextを割り当てていたがなじまないのでやめた。つい癖でC-nとか押してしまう。
やはりif + prognは美しくないので条件を反転させておいた。
(defun ac-next-or-next-line (arg) (interactive "p") (if (/= (length ac-candidates) 1) (ac-next) (ac-abort) (next-line arg))) (defun ac-previous-or-previous-line (arg) (interactive "p") (if (/= (length ac-candidates) 1) (ac-previous) (ac-abort) (previous-line arg)))
「;」でのみ補完確定するならば、C-mのバインドを空にしておくとEnterが元の挙動になる。
(define-key ac-complete-mode-map "\C-m" nil)
C-mでも2ストロークで連打するには辛いので、補完で使わない「;」を補完決定にしてみた。
辛いのかな…つーか、候補選択でC-n/C-p使うからその流れでC-m押しちゃうんだよね。
本当に辛いならac-next/ac-previousに「,」なり「/」なり割り当てたほうがいいかもしれない。候補選択は多くの場合ac-nextだから「,」にac-nextを割り当ててみるか。「:」だと「:」を含むシンボルが補完できんから。
(define-key ac-complete-mode-map "," 'ac-next)
しばらくしたら慣れるかな。