Thierry Volpiatto writes: > Hi Bastien and Eshel, > > Bastien Guerry writes: > >> Hi Thierry, >> >> thanks for your anwer. >> >> Thierry Volpiatto writes: >> >>>> - C-x r s would display the preview and copy the region to the "b" >>>> register as soon as the "b" key is hit (using read-key). >>> >>> I suggest you use M-n RET instead if you want to be sure you don't >>> overwrite a register. >> >> What I am suggesting is to store the register _as soon as_ the user >> hits the "b" key. >> >> Since the recent changes, I need to hit one additional keystroke for >> zero benefit, which is a net less when you use registers a lot. >> >> I use "a", "b", "c" registers for quick copy and paste and can easily >> remember them; when I need more, I use register-list.el. > > I see, you want to go fast. > Using read-key+minibuffer, as I said would be a pain to implement, > hopefully (IIUC) we can use only minibuffer and exit immediately and it > is simple to implement (3 lines): > > 1) Set register-use-preview to nil. > 2) Apply this patch on register.el: > > @@ -388,6 +388,3 @@ > - (if (member pat strs) > - (with-selected-window (minibuffer-window) > - (minibuffer-message msg pat)) > - (with-selected-window (minibuffer-window) > - (minibuffer-message > - "Register `%s' is empty" pat))))))))) > + (with-selected-window (minibuffer-window) > + (setq result pat) > + (exit-minibuffer)))))))) > > 3) Try your "a", "b", "c" registers and also to set a new register, if > needed you can call C-h to have a preview, in this case you will have to > hit RET. > > Let me know if this is acceptable for you. > > Thanks. Even better is this patch which ask for confirmation when overwriting a register but not when jumping, inserting or setting a new register: @@ -388,6 +388,10 @@ - (if (member pat strs) - (with-selected-window (minibuffer-window) - (minibuffer-message msg pat)) - (with-selected-window (minibuffer-window) - (minibuffer-message - "Register `%s' is empty" pat))))))))) + (with-selected-window (minibuffer-window) + (if (and (member pat strs) (memq act '(set modify))) + (with-selected-window (minibuffer-window) + (minibuffer-message msg pat)) + ;; An empty register or an existing + ;; one but the action is insert or + ;; jump, don't ask for confirmation + ;; and exit immediately. + (setq result pat) + (exit-minibuffer))))))))) -- Thierry