ここから本文です
Emacsのauto-completeで候補と入力文字が完全に一致している時にRETでac-completeすると、newlineしてしまうので抑止
Emacsのauto-completeをつかっていると、ちょっとカユい挙動があるのです。
(define-key ac-complete-mode-map (kbd "\r") 'ac-complete)
やac-dwim状態だと、リターンキーがac-completeしてくれます。
で、たとえば以下のような時、
new
と入力し、候補が
new news newline
みたいな状態で、newsを選ぶと、newsのあとでキャレットがきっちり止まってくれる。
でも、newを選ぶと、newlineしちゃうのです。
気持ちとしては、newを選んだ時も、newsを選んだ時も、candidatesから選ぶ、という同じことをしているのだけど、完全一致した候補を選ぶとnewlineまで付いて来ちゃうというのが、ちょっと嫌なんですね。
ので、筋が良いか悪いかわからないけど、defadviceしてみたら、とりあえずなんちゃってで回避できたみたいです。
(defadvice ac-complete (after advice-ac-complete activate) "Inhibit newline when full string was matched with candidate." (when (memq this-command '(newline)) (delete-backward-char 1) (message "full string was matched with candidate.")))
ジャンル: Emacs