M-xしたミニバッファでの補完(その3)
たぶん今回のでその3くらい
その3バージョンはlispモードでlisp-complete-symbolをミニバッファ以外でも使いそうだったので(というか自分が使っていたので)それでおかしくなったのをなくしておいた。
■具体的な変えた所
- EOFが直後にあるとおかしな事になったので、それを修正
- ミニバッファで実行しているかを一応判別するように。
(setq *print-completion-list-hook* '(lambda (list prefix &optional string) (popup-list list '(lambda (arg) (let ((end (point)) (begin)) (unless (minibuffer-window-p(selected-window)) ;minibufferじゃない所で使った場合を考えて ;EOFが直後にあったらおかしくなったのでそれ対策 (if (next-line) ; (goto-char end) (open-line))) ;直前のprefix部分が補完したときに重複しないように削除 (backward-word) (setq begin (point)) (delete-region begin end) (insert arg) (refresh-screen)) ) )))