[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: `g' and `G' do not provide current url as the initial minibuffer contents
- From: Katsumi Yamaoka <yamaoka@xxxxxxx>
- Date: Thu, 31 Jul 2014 14:43:12 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 12369
- References: <86a97xvd4v.fsf@xxxxxxxxxxxxxxxxxxxx> <878une21jz.fsf@xxxxxx> <b4mzjfu5pzg.fsf@xxxxxxx> <8638dlve9x.fsf@xxxxxxxxxxxxxxxxxxxx> <b4ma97thrbm.fsf@xxxxxxx> <86zjfs1ii9.fsf@xxxxxxxxxxxxxxxxxxxx> <b4mbns7sqew.fsf@xxxxxxx> <8761if3w8p.fsf@xxxxxx>
In [emacs-w3m : No.12367]
On Wed, 30 Jul 2014 13:46:14 +0200, Michael Heerdegen wrote:
> But sadly, it doesn't work with helm-mode - M-n is also bound in
> helm-map, so your M-n binding is shadowed.
> Is there a reason why you prefer rebinding M-n over using
> `minibuffer-default-add-function' (which is intended for use cases
> exactly like this one)?
I tried to use `minibuffer-default-add-function' first, but
failed. The custom function set to it didn't seem to be called.
What I did was:
--8<---------------cut here---------------start------------->8---
(defun w3m-input-url-default-add-completions ()
"Use the current url string (if any) as the next history by default.
This function is used as `minibuffer-default-add-function'."
(w3m-static-when (fboundp 'minibuffer-default-add-completions)
(let ((minibuffer-default
(or (with-current-buffer
(window-buffer (minibuffer-selected-window))
(or (w3m-active-region-or-url-at-point) w3m-current-url))
minibuffer-default)))
(minibuffer-default-add-completions))))
(defun w3m-input-url (...)
...
(setq url (let ((minibuffer-setup-hook
(append minibuffer-setup-hook
(list (lambda ()
(set
(make-local-variable
'minibuffer-default-add-function)
'w3m-input-url-default-add-completions)
(beginning-of-line)
(if (looking-at "[a-z]+:\\(?:/+\\)?")
(goto-char (match-end 0)))))))
...)
...
(read-from-minibuffer ...)
...)))
--8<---------------cut here---------------end--------------->8---
Do you see what I missed?
Thanks.
P.S. My Cygwin is being in semi-malfunction since yesterday;
some commands don't work properly (Emacs is not an exception).
So, I'll focus on restoring the system for a while...