ミニバッファ内での入力途中,補完させないで確定したいとき
件のやつです。
mcomplete.el を直接いじってみたけど,だめだった。
というかやり方が間違っていた気もする。
んでも,コメントにバッチリ書いてあるのに,
効かないのは,不思議ちゃん状態ですね。
以下 mcomplete.el から抜粋。
;; When you want to give the exact string you entered, use `M-RET' ;; or `ESC RET'. ;; 中略 (defcustom mcomplete-permissive-completion-map-alist '(("\t" . MComplete-complete) (" " . MComplete-complete-word) ("?" . MComplete-completion-help) ("\r" . MComplete-exit-minibuffer) ("\e\r" . exit-minibuffer) ;; <-- これと ("\n" . MComplete-exit-minibuffer) ("\e\n" . exit-minibuffer) ;; <-- これが,求めるものなのに・・・。 ("\C-c" . MComplete-toggle-ignore-case) ("\C-n" . MComplete-next-method) ("\C-p" . MComplete-previous-method) ("\C-s" . MComplete-next-candidate) ("\C-r" . MComplete-previous-candidate)) "Alist of key bindings to override `minibuffer-local-completion-map'. These bindings are used when an exact match is NOT required." ;; 以下略
だもんで,以下を .emacs に記述して,解決。
;; ミニバッファ内での入力途中,補完させないで確定したいとき (define-key minibuffer-local-completion-map "\M-\r" 'exit-minibuffer) (define-key minibuffer-local-completion-map "\M-\n" 'exit-minibuffer)
いやね,IRC でチャンネル名を入力するときに,チャンネルが2つあって,
例えば #foo と #foo-j とするじゃん。
で,先に #foo-j に入ったとすると,これ大変。
#foo に入れなくなっちゃうんですよ。私,無知なもんで。
で,困ったちゃんになっていたわけです。
M-x turn-off-mcomplete-mode すればいいけど,もう大人なんだし,ねぇ?