Elisp:如何将数据保存在文件中?

2024-02-05

我想将数据保存到我的 elisp 程序中的文件中。我有一个多维列表,我想将其保存到文件中,以便下次程序运行时可以恢复它。最简单/最好的方法是什么?

当然,我意识到我可以简单地将数据以自定义格式写入缓冲区,然后保存缓冲区,但是当我想要恢复数据格式时,我必须编写一个函数来解析该数据格式。我宁愿不必这样做。

在 Python 中,Pickle 模块可以让您非常轻松地将对象“转储”到磁盘并恢复它们。 elisp 有类似的东西吗?


This 'dump-vars-to-file例程将创建一些表达式,可以通过稍后简单地计算表达式来读取这些表达式(通过'load命令或'read):

(defun dump-vars-to-file (varlist filename)
  "simplistic dumping of variables in VARLIST to a file FILENAME"
  (save-excursion
    (let ((buf (find-file-noselect filename)))
      (set-buffer buf)
      (erase-buffer)
      (dump varlist buf)
      (save-buffer)
      (kill-buffer))))

(defun dump (varlist buffer)
  "insert into buffer the setq statement to recreate the variables in VARLIST"
  (loop for var in varlist do
        (print (list 'setq var (list 'quote (symbol-value var)))
               buffer)))

我确信我缺少一些做得更好或更灵活的内置例程。

我用这个小例程测试了它:

(defun checkit ()
  (let ((a '(1 2 3 (4 5)))
        (b '(a b c))
        (c (make-vector 3 'a)))
    (dump-vars-to-file '(a b c) "/some/path/to/file.el")))

产生的输出:

(setq a (quote (1 2 3 (4 5))))
(setq b (quote (a b c)))
(setq c (quote [a a a]))

欲了解更多信息,请参阅信息页面读取和打印 Lisp 对象 http://www.gnu.org/s/emacs/manual/html_node/elisp/Read-and-Print.html#Read-and-Print

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elisp:如何将数据保存在文件中? 的相关文章

  • 如何将 Firebase 数据库持久性存储限制为仅某些节点?

    将以下代码添加到AppDelegate将使 Firebase 数据库在用户离线时可用 FIRDatabase database persistenceEnabled true 我们怎样才能使数据库的某些部分在离线模式下可用 而另一些部分在用
  • 在 Hibernate 中禁用延迟加载

    如何在 Hibernate 中禁用延迟加载 我使用的是持久性注释 而不是 hbm xml 文件 我正在按 ID 获取单个对象 并希望加载所有属性 在我使用该对象之前会话已关闭 Thanks 您需要使用 FetchType EAGER 注释您
  • SugarORM 中的持久化对象

    我有一个图书课 public class Book extends SugarRecord private String mBookName private String mAuthorName private List
  • Firebase持久化,清除Firebase缓存

    我的应用程序使用 Firebase 来同步和恢复数据 我用setValue withCompletionBlock 插入 更新和删除 Firebase 对象的方法 每当有 CoreData 保存时就会调用此方法 从而将我的所有本地更改同步到
  • 在 Django 中创建持久数据对象

    我有一个基于 Python 的最大熵分类器 它很大 存储为 Pickle 大约需要一分钟才能反序列化 它也不是线程安全的 然而 它运行速度很快 可以在几毫秒内对样本 一个简单的 Python 字典 进行分类 我想创建一个基本的 Django
  • 在 Emacs Paredit 中交换括号和方括号

    如何在 paredit 模式下定义交换括号和方括号的命令 所以任务就是把它变成这样 例如 blah a b c 进入这个 blah a b c 使用 paredit 模式 移至表达式的开头 a 进而 C M SPC
  • Firestore 作为离线持久性机制有多可靠?

    我目前使用 Firebase Firestore 作为主要后端 从各种来源检索数据 我还使用 Android 的 Room 作为我的移动后端 当手机接收到数据时 数据会存储在 Room 数据库中 以防用户几天甚至几周内不再上网 查看设备文件
  • Emacs:当光标位于右括号时匹配括号

    之前有人问过 Emacs 当光标位于其上时突出显示匹配的括号 而不是其后 https stackoverflow com questions 16399530 emacs highlight matching paren when curs
  • Hibernate saveOrUpdate 与更新与保存/持久

    我正在努力理解休眠方法之间的细微差别 saveOrUpdate update save persist 我知道网站上有一些类似的问题 Hibernate中不同的保存方式有什么区别 https stackoverflow com questi
  • 在 Emacs 中,如何确定哪个包正在加载 Tramp?

    我与 ranp 和 cygwin mount 有一个奇怪的交互 我认为 Emacs 文件名的制表符补全会附加一个额外的 i cygwin https stackoverflow com questions 1705802 emacs tab
  • Emacs -- 修改 `fill-column-indicator.el` 以在空白处显示

    我正在寻求一些帮助来修改fill column indicator el由 Alp Aker 设计 以便垂直线在空白处可见 无论空白模式是否处于活动状态 以下是该库的 Github 存储库的链接 https github com alpak
  • 在 C# 中赋值后如何保留有关对象的信息?

    我一直在问我的想法可能是解决方案 https stackoverflow com questions 35254467 is it possible in c sharp to get the attributes attached to
  • Emacs 启动时出现 24 错误

    我已经使用 emacs snapshot 一段时间了 但最近它崩溃了很多 所以我切换到 Emacs 24 但是一旦我安装并启动它 它就开始显示错误并且不会在我的 init el 中加载任何内容 当我在调试模式下运行它时 我得到了这个 Deb
  • FetchType.LAZY 不适用于休眠中的 @ManyToOne 映射

    简而言之 我的 Child 类与 Parent 类之间存在多对一的关系 我想加载所有的孩子 而不必加载他们的父母详细信息 我的孩子班级是 Entity public class Child implements Serializable I
  • Firebase 3.0 会话持久性

    在 firebase 3 0 中使用会话持久性似乎是不可能的 这在以前的版本中是可能的 https www firebase com docs web guide login password html https www firebase
  • 如何在休眠中持久保存实体期间验证实体的约束

    我有一个带有字段名称的实体 我希望它不超过255 所以我这样定义它 Entity public class A implements Serializable NotNull Size max 255 private String name
  • PersistenceUnit 与 PersistenceContext

    在我已经成功使用的几个项目中 PersistenceUnit unitName MiddlewareJPA EntityManagerFactory emf EntityManager entityManager emf createEnt
  • 没有从 {classpath*:META-INF/persistence.xml} 解析持久性单元

    使用 Spring Core 3 0 5 Hibernate 3 6 0 这个问题的标题是在使用我正在维护的应用程序启动 Tomcat Web 服务器 6 0 29 时引发的 java lang IllegalStateException
  • 在 Elisp 中如何获取变量的初始值?

    在Emacs Lisp中 是否有一个函数可以获取由以下方式初始化的符号的初始值defvar 像some function如下图所示 defvar var initial value setq var changed value some f
  • 在Unity游戏中保存数据的最佳方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道 在 Unity 游戏中保存数据的最佳方式是什么 JSON 如果是这样 怎么办 谢谢 以下是一些不同的方式和方法保存 Unit

随机推荐

  • 这怎么可能:在 WaitOne 中处理 OnPaint

    我有一个ManualResetEvent 有一次 我使用等待该事件WaitOne 令我惊讶的是 我收到了一份OnPaint事件 而在WaitOne 这种情况也经常发生 堆栈跟踪如下所示 我明白了WaitOne会阻塞当前线程 并且在事件触发之
  • 如果Android中的应用程序被强制关闭,如何重置警报

    如果出现以下情况 我的应用程序使用 AlarmManager 设置的警报将被清除 用户在设置中强制关闭我的应用程序 一些任务杀手应用程序自动终止了我的应用程序进程 Android 本身杀死了我的应用程序 因为前端应用程序需要内存 请告诉我如
  • F# XML 多行文档,Visual Studio 2017

    我想添加一个多行 XML 文档 当我的鼠标悬停在它上面时 该文档将出现在 Intelli Sense 气泡中 参见示例 当我使用 Visual Studio 2015 时 以下代码可以工作 请参见下面的屏幕截图 但现在当我使用 Visual
  • 预加载组件

    在工作中 我们使用 DevExpress 作为用户界面 第一次打开使用 DevExpress 控件的表单时 会出现很长的暂停 在某些客户端上有时会出现 15 20 秒 在 Visual Studio 中 我可以看到该阶段正在加载大量程序集
  • CSS3可计算表达式?

    是否有任何技术允许在 css3 语句中使用表达式 通常 做以下事情是有帮助的 width 35 20px或类似的 目前 针对这些情况 我唯一的解决方案是重新设计页面或使用 javascript 动态设置 css CSS 关于值和单位的工作草
  • 调试类型初始值设定项中的异常

    我有一个静态类 没有静态构造函数 但有许多静态成员 第一次使用该类时 我抛出 TypeInitializationException 我正在打破 CLR 异常 并且已禁用 仅我的代码 问题是我只有在第一次使用这个类时才会得到这个异常 我不会
  • 如何在 ASP.NET MVC 5 中插入主从表

    I have Orders表和订单详细信息数据库中的表 通过 Entity Framework 6 我获得了一个模型 因此我可以从它生成类 我还从 Orders 表生成了控制器和视图 Orders folio PK date custome
  • ssl_transport_security.cc:599] 无法加载任何根证书

    我尝试使用 hyperledger composer fabric v0 19 0 创建自己的网络 网络构建似乎不错 但是当我执行composer network install 我收到这个错误 Composer Install Insta
  • 在 Spring 中使用 RestTemplate。异常 - 没有足够的变量可用于扩展

    我正在尝试访问 API 的内容 并且需要使用 RestTemplate 发送 URL String url1 http api example com Search key 52ddafbe3ee659bad97fcce7c53592916
  • XPath 在两个 HTML 注释之间进行选择?

    我有一个很大的 HTML 页面 但我想使用 Xpath 选择某些节点 div some text div div p Some more elements p div 我可以在之后选择 HTML using comment begin co
  • ImageView setImageBitmap 在 onTouch 内的复杂布局中间歇性地不执行任何操作

    我有内部包含 ImageView 的嵌套布局 这些都在 ScrollView 内 最初 ImageView 被设置为 Drawable 资源 我用这个解决方案来检测卷轴 它是从内部调用的onTouchListener Android 检测
  • openssl 命令行验证签名

    您好 我已经生成了密钥对并使用私钥生成签名 openssl rsautl sign in helloworld txt inkey aa pem out sig 但是我无法使用我的公钥验证签名 openssl rsautl verify i
  • Open XML: Word - 将所有段落标记为“Heading1”样式

    我使用Word 创建了一个带有标准normal dot 的Docx 作为测试 Hello world 级别的复杂性 我希望得到all the paragraphs其样式为 Heading1 style在Word中 我可以获取所有段落 但不知
  • 如何在 SQL Server 查询中显示表结构?

    SELECT DateTime Skill Name TimeZone ID User Employee Leader FROM t Agent Skill Group Half Hour AS t 我需要在查询中查看表结构 对于 SQL
  • numpy 数组中负数的立方根返回 nan

    来自 Numpy 文档 gt gt gt a np arange 10 3 gt gt gt a array 0 1 8 27 64 125 216 343 512 729 gt gt gt a 2 8 gt gt gt a 2 5 arr
  • 如何在php中将unicode字符转换为阿拉伯字符?

    假设该字符串是 uni str 06280628002006280628 阿拉伯语是 bab bab 那么 我如何在不使用 html 的情况下将其转换为 php for i 0 i
  • UnsupportedOperation:无法执行非零相对端搜索:Python - PyPDF2

    你们能解决这个问题吗 我无法阅读阿拉伯语 PDF 文件 我不知道是什么问题 谢谢 import PyPDF2 def main with open arabic text pdf encoding utf 8 as pdfFile pdfR
  • C++ 指向非静态成员函数的指针

    我读过很多关于非静态成员函数指针的帖子和答案 但看起来没有一个能够解决我的问题 因此 我创建了一个简短的示例来复制我的问题 即使这个示例可以以不同的方式 解决 对于最终的软件来说 保持示例中的结构很重要 谢谢 这是 Funcs h 类的标头
  • 在使用 flutter_bloc 库调度事件之前等待一些结果

    我正在尝试创建一个 BLOC 它依赖于另外两个基于时间的块和一个非基于时间的块 我的意思是基于时间 例如他们正在连接远程服务器 因此需要时间 它的工作原理如下 登录 当然需要一些时间 如果登录成功 做另一个过程 这也需要时间 它返回一个未来
  • Elisp:如何将数据保存在文件中?

    我想将数据保存到我的 elisp 程序中的文件中 我有一个多维列表 我想将其保存到文件中 以便下次程序运行时可以恢复它 最简单 最好的方法是什么 当然 我意识到我可以简单地将数据以自定义格式写入缓冲区 然后保存缓冲区 但是当我想要恢复数据格