swp文件的结构是什么?

2024-06-11 15:20:29 发布

您现在位置:Python中文网/ 问答频道 /正文

一个应用程序希望将文本shell输出到vim,并实时知道正在进行哪些编辑。在

swp文件提供了这些信息。有谁能提供关于如何使用Python读取这个二进制文件的指导吗?在


Tags: 文件文本信息应用程序编辑二进制vimshell
3条回答

谢谢所有回复的人。在

我希望.swp会被记录下来,甚至可能连访问它的代码都没有。在

建议用Python编写一个插件可能是最有意义的,我敢打赌它是有可能钩住类似“onéu keystroke”并维护一个我能理解的镜像。在

“shell out”如“将此文本块写入临时文件,在vim中打开该文件,当vim退出时,将临时文件内容写入替换文本块”

附言:100美元太贵了,买不起那些票

当我编写查看.swp内容的ls.swp工具时,我对.swp文件格式做了自己的研究(这是一个perl脚本,里面有很多文档)。在

我感兴趣的主要来源是:

解析这个需要一些逆向工程,我只能提取某些数据。我只想从中得到一些关于编辑文件状态的基本信息。我的结果如下:

$ 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

我很确定您不会得到任何实时数据,因为这将是vim需要维护的一大堆磁盘I/O。在

我不会依赖交换文件的内容来获得实时更新。它的格式是针对Vim的用途而设计的,它的格式除了由它的实现之外不会被记录下来。您将不得不复制算法的大部分内容,并在内部格式发生变化时(无需事先通知)进行维护。在

或者,我将使用一种嵌入式语言(例如Python)与希望获得实时更新的外部程序接口。例如,Python函数可以周期性地在套接字上发送整个缓冲区内容。在

相关问题 更多 >