Pregunta:
De vez en cuando alguien me envía un archivo .odt
, .doc
y .docx
; abrirlos en OpenOffice siempre es un fastidio porque, bueno, OpenOffice.
En este momento, uso una variedad de herramientas de línea de comandos (como odt2txt
) para convertir estos archivos a texto sin formato, guardar el texto sin formato en un archivo temporal y luego verlo (y tal vez editarlo) en Vim.
¿Se puede hacer esto más fácil? ¿Quizás algo con los autogrupos? ¿O tal vez hay mejores formas? Me gustaría simplemente hacer:
$ vim file.odt
¿Y se ha encargado Vim de la conversión por mí?
Aún mejor (puntos de bonificación) sería si también pudiera guardar el archivo (en file.txt
), pero que esto no se crearía hasta que haga una escritura …
Respuesta:
Debería poder agregar algo como esto a su vimrc:
autocmd BufReadPost *.odt :%!odt2txt %
Eso enviará todo el búfer a través del programa odt2txt
después de que vim lo lea, pero solo si el nombre del archivo termina con .odt
.
También está el complemento textutil.vim que dice que puede hacer lo que estás hablando para algunos de esos tipos de archivos (pero no lo he usado personalmente).
Si está dispuesto a editar en algo un poco más estructurado que el texto sin formato, como Markdown, también puede usar pandoc para hacer la conversión:
autocmd BufReadPost *.docx :%!pandoc -f docx -t markdown
autocmd BufWritePost *.docx :!pandoc -f markdown -t docx % > tmp.docx
En realidad, no he probado estas conversiones, pero deberían funcionar. Es posible que deba utilizar diferentes herramientas según el formato de archivo.