From: Marcin Borkowski <mbork@mbork.pl>
To: Eli Zaretskii <eliz@gnu.org>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Persistence of variables
Date: Wed, 21 Mar 2018 10:13:11 +0100 [thread overview]
Message-ID: <87605px048.fsf@mbork.pl> (raw)
In-Reply-To: <87605p28ma.fsf@mbork.pl>
On 2018-03-21, at 08:25, Marcin Borkowski <mbork@mbork.pl> wrote:
> On 2018-03-21, at 07:55, Eli Zaretskii <eliz@gnu.org> wrote:
>
>>> From: Marcin Borkowski <mbork@mbork.pl>
>>> Date: Wed, 21 Mar 2018 07:08:44 +0100
>>>
>>> I want to make a variable persistent across Emacs sessions. How do I do
>>> it?
>>
>> Did you consider desktop.el?
>
> No, I did not remember about its existence.
>
> But no, way too heavy. I want _one variable_ to persist, and nothing
> more.
OK, how about this?
--8<---------------cut here---------------start------------->8---
(defun make-variable-persistent (variable-name)
"Save VARIABLE-NAME to `custom-file' or `init-file'."
(when (y-or-n-p (format "I am going to save variable `%s' in %s. Should I proceed? " variable-name user-init-file))
(with-temp-file user-init-file
(let ((sentinel-text (format "\n;; Persistent variable `%s'. Do not edit manually!\n" variable-name)))
(insert-file-contents user-init-file)
(if (search-forward sentinel-text nil t)
(if (not (looking-at-p (format "^(setq %s" variable-name)))
(error "Broken init file.")
(kill-sexp))
(goto-char (point-max))
(insert sentinel-text)))
(insert (format "(setq %s %S)" variable-name (symbol-value variable-name))))))
--8<---------------cut here---------------end--------------->8---
Any thoughts/suggestions?
--
Marcin Borkowski
http://mbork.pl
next prev parent reply other threads:[~2018-03-21 9:13 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-21 6:08 Persistence of variables Marcin Borkowski
2018-03-21 6:55 ` Eli Zaretskii
2018-03-21 7:25 ` Marcin Borkowski
2018-03-21 9:13 ` Marcin Borkowski [this message]
2018-03-21 9:27 ` tomas
2018-03-21 9:51 ` Marcin Borkowski
2018-03-21 10:23 ` tomas
2018-03-25 17:10 ` Marcin Borkowski
2018-03-21 11:34 ` Emanuel Berg
[not found] ` <mailman.11020.1521632103.27995.help-gnu-emacs@gnu.org>
2018-03-21 11:38 ` Emanuel Berg
2018-03-21 9:53 ` Eric Abrahamsen
2018-03-21 10:26 ` Marcin Borkowski
2018-03-21 15:12 ` Drew Adams
2018-03-21 15:19 ` tomas
2018-03-21 22:16 ` Joost Kremers
2018-03-25 17:15 ` Marcin Borkowski
2018-03-25 18:57 ` Drew Adams
[not found] ` <mailman.11217.1521998149.27995.help-gnu-emacs@gnu.org>
2018-03-28 0:21 ` Emanuel Berg
2018-03-28 5:05 ` Marcin Borkowski
[not found] ` <mailman.11329.1522213571.27995.help-gnu-emacs@gnu.org>
2018-03-28 13:09 ` Emanuel Berg
[not found] ` <mailman.11032.1521645579.27995.help-gnu-emacs@gnu.org>
2018-03-21 21:43 ` Emanuel Berg
2018-03-24 23:54 ` Robert L.
2018-03-25 17:12 ` Marcin Borkowski
2018-03-26 1:48 ` Eric Abrahamsen
2018-03-28 19:12 ` Marcin Borkowski
[not found] ` <mailman.11031.1521645187.27995.help-gnu-emacs@gnu.org>
2018-03-21 18:00 ` Emanuel Berg
2018-03-21 18:23 ` Eli Zaretskii
[not found] ` <mailman.11045.1521656612.27995.help-gnu-emacs@gnu.org>
2018-03-21 21:30 ` Emanuel Berg
2018-03-22 1:36 ` Rolf Ade
2018-03-22 7:02 ` Eli Zaretskii
[not found] ` <mailman.11076.1521702135.27995.help-gnu-emacs@gnu.org>
2018-03-24 3:06 ` Emanuel Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87605px048.fsf@mbork.pl \
--to=mbork@mbork.pl \
--cc=eliz@gnu.org \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.