gnu.emacs.help
[Top] [All Lists]

Re: length of query-replace-history list

Subject: Re: length of query-replace-history list
From: Kevin Rodgers
Date: Thu, 01 Jun 2006 15:36:48 -0600
Newsgroups: gnu.emacs.help
B. T. Raven wrote:
Thanks, Kevin. Now that I understand what's going on, it doesn't seem like
it's worth while just to save a few hundred bytes. I had an idea to save
the qrh into a saved association list, something like:

(setq sal (cons (cons  (cadr query-replace-history) (car
query-replace-history)) sal))

You could use desktop-save-mode and add query-replace-history to
desktop-globals-to-save.

The idea is to re-load this later and run query replace in batch mode on
other files. I have no idea how to do this in detail but it seems possible
and it would be very useful to me. Maybe instead of setting it to 2, I'll
set it to t, and then then figure out how to manipulate the resulting flat
list of strings after an hours' long session of query-replacing.

You could also set desktop-base-file-name to specify a file just for
this specific purpose, and save just the last elements of
query-replace-history.

,----[ C-h v desktop-save-hook RET ]
| desktop-save-hook is a variable defined in `desktop.el'.
| Its value is nil
|
| Documentation:
| Normal hook run before the desktop is saved in a desktop file.
| This is useful for truncating history lists, for example.
|
| You can customize this variable.
|
| [back]
`----

(setq desktop-base-file-name ".emacs.batch.desktop"
      desktop-globals-to-save 'query-replace-history)

(add-hook desktop-save-hook
          (lambda ()
            (when (cdr (cdr query-replace-history))
              (setcdr (cdr query-replace-history) nil))))

Since for my needs this list (sal) of dotted pairs would be a few thousand
elements long, it is probably not the best data structure to use. Could
something along this line be done with a hash table?

Do you want all of the history or not?  If you only want 2 elements as
you originally said, then don't bother saving and manipulating anything
else.  If you do want the whole history, a list of strings may be as
good as anything -- after all, how do you know which search and replace
strings to use?

Finally, note that you can set query-replace-from-history-variable
and query-replace-to-history-variable to different symbols, and save
them instead.

--
Kevin




<Prev in Thread] Current Thread [Next in Thread>