有时,有人向我发送了.odt.doc.docx文件;在OpenOffice中打开它们总是很痛苦,因为OpenOffice。

现在,我使用各种命令行工具(例如odt2txt)将这些文件转换为纯文本,并将纯文本保存为临时文件,然后在Vim中查看(甚至可以编辑)。

可以简化吗?也许与自动组有关?或者也许有更好的方法?我只想做:

$ vim file.odt


Vim帮我转换了吗?

更好(奖励积分)会更好吗?是否还可以保存文件(到file.txt),但是直到我执行写操作才能创建该文件...

#1 楼

您应该能够在vimrc中添加以下内容:

autocmd BufReadPost *.odt :%!odt2txt %


在vim读取odt2txt程序后,它将通过.odt程序发送整个缓冲区,但仅当该文件名以q4312079q结尾。 。

如果您想要编辑比纯文本稍微结构化的内容(例如markdown),也可以使用pandoc进行转换:

autocmd BufReadPost *.docx :%!pandoc -f docx -t markdown
autocmd BufWritePost *.docx :!pandoc -f markdown -t docx % > tmp.docx


我尚未实际测试这些转换,但它们应该可以工作。根据文件格式,您可能需要使用其他工具。

评论


autocmd BufReadPost * .docx:%!pandoc -f docx -t markdown的基本意思是,如果我在vim中打开.docx文件,它将在显示之前通过:%!pandoc -f docx -t markdown传递该文件。在VIM窗口上?

–alpha_989
17年12月19日在16:50

@ alpha_989是的。

–xthrd
17年12月20日在20:27