Python vim.swp文件的结构是什么?
应用程序希望将文本输出到vim,并实时了解正在进行的编辑Python vim.swp文件的结构是什么?,python,vim,Python,Vim,应用程序希望将文本输出到vim,并实时了解正在进行的编辑 .swp文件提供了这些信息。有人能提供关于如何读取这个二进制文件的指导吗,比如说,使用Python?我不会依赖交换文件的内容来获得实时更新。它的格式是针对Vim的使用而设计的,除了它的实现之外,它的格式是没有文档记录的。您必须复制算法的大部分内容,并在内部格式发生变化时(无需事先通知)保持这一点 或者,我会使用一种嵌入式语言(例如Python)与希望获得实时更新的外部程序进行交互。例如,Python函数可以在套接字上定期发送整个缓冲区内容
.swp文件提供了这些信息。有人能提供关于如何读取这个二进制文件的指导吗,比如说,使用Python?我不会依赖交换文件的内容来获得实时更新。它的格式是针对Vim的使用而设计的,除了它的实现之外,它的格式是没有文档记录的。您必须复制算法的大部分内容,并在内部格式发生变化时(无需事先通知)保持这一点
或者,我会使用一种嵌入式语言(例如Python)与希望获得实时更新的外部程序进行交互。例如,Python函数可以在套接字上定期发送整个缓冲区内容。感谢所有回复的人 我希望.swp会被文档化,甚至可能是可以访问它的代码,看起来都不是 用Python编写插件的建议可能是最有意义的,我打赌它可能会挂到类似“on_击键”的东西上,并维护一个我能理解的镜像 “shell out”如“将此文本块写入临时文件,在vim中打开该文件,当vim退出时,将临时文件内容写入替换文本块”
PS:$100对于那些门票来说太多了当我编写查看
.swp
内容的工具时,我自己对.swp
文件格式进行了调查(这是一个包含大量文档的perl脚本)
我感兴趣的主要来源是:
- 上的Vim General邮件列表线程
- 关于的Vim官方文档
$ ls.swp .ls.swp.sw*
.ls.swp.swo:adamhotep@tabasco:~/git/misc-scripts/ls.swp (running) 85d ago
.ls.swp.swp:adamhotep@tabasco:~/git/misc-scripts/ls.swp 85d ago
我很确定你不会得到任何实时数据,因为那只是维姆需要维护的一大堆磁盘I/O。
open(“yourfile.swp”,“rb”)
?注意:我想修补维姆要比解析交换文件容易得多。@KarolyHorvath:我认为OP使用“shell text out”作为某种俚语的意思“将文本输出到控制台”(想想“我花了100美元买了这些很棒的票”)如果你找不到描述Vim交换文件结构的文档,你可以尝试挖掘源代码。src/memline.c:ml_recover()
看起来是一个很好的起点。请提供更多的背景信息;你的最终目标是什么?当一个问题仅仅是关于一个小的技术步骤时,很难给出一个好的答案。如果你不告诉我们你为什么要这样做,很容易屈服于。只要更新计数(默认值200),就会编写交换文件字符是键入的,或者是updatetime
(默认值4000)毫秒,没有任何输入。因此,它是半实时的,并且实时性如何可以调整。