是否可以在Vim中轻松使用.odt,.doc,.docx,.rtf和其他非纯文本格式?


14

偶尔有人送我一个.odt.doc.docx文件; 在OpenOffice中打开它们总是很痛苦,因为OpenOffice。

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

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

$ vim file.odt

Vim为我照顾了转换吗?

更好的(加分点)是,如果我还能够保存文件(到file.txt),但是在我执行写操作之前不会创建该文件...

Answers:


13

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

autocmd BufReadPost *.odt :%!odt2txt %

odt2txtvim读取整个缓冲区后,它将通过程序发送整个缓冲区,但前提是文件名以结尾.odt

还有一个textutil.vim插件,它可以针对某些文件类型执行您正在谈论的事情(但是我个人并没有使用它)。

如果您愿意以比纯文本稍微结构化的方式进行编辑,例如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

1
@ alpha_989是的。
xthrd
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.