[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

terminating form input by `C-c C-c'



Google などで検索する文字列を minibuffer で書き終わったときに
RET ではなく `C-c C-c' をタイプしてしまうことはありませんか?
ぼくはよくあるんです。そこで、こういうことをしてみました。

(define-key minibuffer-local-map "\C-c\C-c" 'exit-minibuffer)

しかし、間違えて `C-c C-c' を使ってしまうのは emacs-w3m でだけな
ので、これはちょっとやり過ぎ。

もし「ぼくも」「わたしも」「Me too」という声があるなら以下の変更
をしたいのですが?

--- w3m-form.el~	2009-01-04 21:39:55 +0000
+++ w3m-form.el	2009-02-04 05:49:02 +0000
@@ -960,13 +960,21 @@
     (prog1 (point)
       (goto-char p))))
 
+(defvar w3m-form-input-map
+  (let ((keymap (make-sparse-keymap)))
+    (define-key keymap "\C-c\C-c" 'exit-minibuffer)
+    (set-keymap-parent keymap minibuffer-local-map)
+    keymap)
+  "*Keymap that `w3m-form-input' uses in the minibuffer.")
+
 (defun w3m-form-input (form id name type width maxlength value)
   (let ((fvalue (w3m-form-get form id)))
     (if (get-text-property (point) 'w3m-form-readonly)
 	(message "READONLY %s: %s" (upcase type) fvalue)
       (save-excursion
 	(let ((input (save-excursion
-		       (read-from-minibuffer (concat (upcase type) ": ") fvalue)))
+		       (read-from-minibuffer (concat (upcase type) ": ")
+					     fvalue w3m-form-input-map)))
 	      (coding (w3m-form-get-coding-system (w3m-form-charlst form))))
 	  (when (with-temp-buffer
 		  (insert input)
-- 
山岡