help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: when deleting in minibuffer, don't change kill-ring


From: Tassilo Horn
Subject: Re: when deleting in minibuffer, don't change kill-ring
Date: Thu, 27 Oct 2011 20:23:41 +0200
User-agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux)

"Drew Adams" <drew.adams@oracle.com> writes:

>> how to prohibit kill-ring being changed, when I press "backspace" key
>> in minibuffer?
>
> It is _not_ changed.  Provide a recipe, starting from emacs -Q.
>
> If you do need to change the binding of the key for some reason, then
> do so in each of the minibuffer key maps.  E.g.,
>
> (define minibuffer-local-must-match-map (kbd "DEL")
>         'backward-delete-char)
> etc.
>
> But AFAICT, the global binding of DEL (and <backspace>) is in effect
> in the minibuffer, and the global binding does not kill a char, it
> deletes it.

I guess the OP means `backward-kill-word' (<M-backspace>) and friends.
I'm also interested in something like that.  I want to use the word,
line, and region editing commands in the minibuffer, but I don't want to
have the killed text in the global kill-ring.

What I'd really like to have is a separate kill-ring for the
minibuffers.  I've tried

(dolist (b (buffer-list))
  (when (minibufferp b)
    (set-buffer b)
    (make-local-variable 'kill-ring)))

or entering a recursive edit

  M-: M-: (make-local-variable 'kill-ring) RET C-g,

but that doesn't have an effect.  Isn't it possible to have buffer local
values for variables defined at the C level?

Another observation: why are there more than one minibuffers?  Right
now, I have 4:

(dolist (b (buffer-list))
  (when (minibufferp b)
    (insert (format "%s is a minibuffer\n" b)))) ;; C-j
 *Minibuf-1* is a minibuffer
 *Minibuf-2* is a minibuffer
 *Minibuf-3* is a minibuffer
 *Minibuf-0* is a minibuffer

some minutes ago I had 5, all with just one emacs frame.  And with emacs
-Q, I first have one and after the first window split, I have 2.

Bye,
Tassilo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]