我经常需要阅读具有相当简单结构的大XML文件(> 100 MB).我想使用emacs,但它不能很好地支持大文件.我想也许我可以使用一个java应用程序,可以为我做SAX或StAX解析,并为我提供所有必要的操作(例如搜索).在emacs和外部Java应用程序之间进行通信的"正确方法"是什么?
您可以尝试禁用该特定缓冲区的font-lock-mode.我打开了比使用emacs更大的文件.我注意到只有当文件中的行大于我的屏幕并且它们开始换行时才会减速.让它们离开屏幕并禁用字体锁定可以加速性能.
我不认为有一个"正确的方法",但这里有一些想法:
使您的Java应用程序将XML文档作为一组线程文章呈现在组中; 让它说NNTP并使用Gnus,或者提出自己的协议并为它编写一个Gnus后端(请参阅Web浏览后端获取灵感)
把XML文档想象成一个Lisp程序(S表达式,XML元素,有什么区别?)并编写一个与Emacs中的SLIME通信的Swank后端,然后使用SLIME命令进行查询
编写一个FUSE驱动程序,以便将XML文档作为文件系统挂载,并使用Dired来探索它.