应用程序希望将文本外壳发送到vim并实时了解正在进行的编辑。
.swp文件提供此信息。任何人都可以提供有关如何使用Python读取此二进制文件的指导吗?
答案 0 :(得分:2)
当我编写查看.swp
内容的ls.swp工具(其中包含大量文档的perl脚本)时,我对.swp
文件格式进行了自己的调查。
我感兴趣的主要来源是:
解析这需要一些逆向工程,我只能提取某些数据。我想要摆脱的只是关于编辑文件状态的一些基本信息。我的结果如下:
$ 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供vim维护。
答案 1 :(得分:1)
我不会依赖交换文件内容来获取实时更新。它的格式适合Vim的用途,除了它的实现之外,它的格式没有记录。您必须复制算法的大部分内容,并在内部格式发生变化时保持这一点(不事先通知)。
或者,我会使用其中一种嵌入式语言(例如Python)与想要获得实时更新的外部程序进行交互。例如,Python函数可以定期发送套接字上的整个缓冲区内容。
答案 2 :(得分:0)
感谢所有回复的人。
我希望.swp会被记录下来,甚至可以访问它的代码,似乎没有。
在Python中编写插件的建议可能最有意义,我敢打赌可以挂钩像'on_keystroke'这样的东西并保持一个我能理解的镜像。
'shell out',如'将此文本块写入临时文件,在vim中打开该文件,当vim退出时,将临时文件内容写入替换文本块'
PS:100美元对于那些门票来说太过分了