From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Marcin Borkowski Newsgroups: gmane.emacs.help Subject: Re: Persistence of variables Date: Wed, 21 Mar 2018 10:13:11 +0100 Message-ID: <87605px048.fsf@mbork.pl> References: <87a7v20xlf.fsf@mbork.pl> <83a7v1lxxz.fsf@gnu.org> <87605p28ma.fsf@mbork.pl> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1521623530 9617 195.159.176.226 (21 Mar 2018 09:12:10 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 21 Mar 2018 09:12:10 +0000 (UTC) User-Agent: mu4e 1.1.0; emacs 27.0.50 Cc: help-gnu-emacs@gnu.org To: Eli Zaretskii Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Mar 21 10:12:06 2018 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eyZmv-0002N8-Tz for geh-help-gnu-emacs@m.gmane.org; Wed, 21 Mar 2018 10:12:06 +0100 Original-Received: from localhost ([::1]:53560 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyZox-0007Um-Do for geh-help-gnu-emacs@m.gmane.org; Wed, 21 Mar 2018 05:14:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38547) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyZoV-0007UN-FH for help-gnu-emacs@gnu.org; Wed, 21 Mar 2018 05:13:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eyZoU-0005NI-Ae for help-gnu-emacs@gnu.org; Wed, 21 Mar 2018 05:13:43 -0400 Original-Received: from mail.mojserwer.eu ([195.110.48.8]:37887) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyZoQ-0005MB-JG; Wed, 21 Mar 2018 05:13:38 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mail.mojserwer.eu (Postfix) with ESMTP id BB471E676E; Wed, 21 Mar 2018 10:13:37 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mail.mojserwer.eu Original-Received: from mail.mojserwer.eu ([127.0.0.1]) by localhost (mail.mojserwer.eu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aV98CXXZ8p5l; Wed, 21 Mar 2018 10:13:35 +0100 (CET) Original-Received: from localhost (188.47.33.82.ipv4.supernova.orange.pl [188.47.33.82]) by mail.mojserwer.eu (Postfix) with ESMTPSA id 8C47FE6700; Wed, 21 Mar 2018 10:13:34 +0100 (CET) In-reply-to: <87605p28ma.fsf@mbork.pl> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.110.48.8 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:116229 Archived-At: On 2018-03-21, at 08:25, Marcin Borkowski wrote: > On 2018-03-21, at 07:55, Eli Zaretskii wrote: > >>> From: Marcin Borkowski >>> 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