Có thể dễ dàng làm việc với các định dạng .odt, .doc, .docx, .rtf và các định dạng văn bản không đơn giản khác trong Vim không?


14

Đôi khi ai đó gửi cho tôi một .odt, .doc.docxtập tin; mở chúng trong OpenOffice luôn là một nỗi đau bởi vì, tốt, OpenOffice.

Ngay bây giờ tôi sử dụng nhiều công cụ dòng lệnh (chẳng hạn như odt2txt) để chuyển đổi các tệp này thành văn bản thuần túy, lưu văn bản thuần thành tệp tạm thời, sau đó xem (và có thể chỉnh sửa) nó trong Vim.

Điều này có thể được thực hiện dễ dàng hơn? Có lẽ một cái gì đó với các nhóm tự động? Hoặc có thể có những cách tốt hơn? Tôi chỉ muốn làm:

$ vim file.odt

Và Vim có lo việc chuyển đổi cho tôi không?

Thậm chí tốt hơn (điểm thưởng) sẽ là nếu tôi cũng có thể lưu tệp (đến file.txt), nhưng điều này sẽ không được tạo cho đến khi tôi viết ...

Câu trả lời:


13

Bạn sẽ có thể thêm một cái gì đó như thế này vào vimrc của bạn:

autocmd BufReadPost *.odt :%!odt2txt %

Điều đó sẽ gửi toàn bộ bộ đệm thông qua odt2txtchương trình sau khi nó được đọc bởi vim, nhưng chỉ khi tên tệp kết thúc bằng .odt.

Ngoài ra còn có plugin textutil.vim nói rằng nó có thể thực hiện những gì bạn đang nói về một vài trong số các loại tệp đó (nhưng cá nhân tôi chưa sử dụng nó).

Nếu bạn sẵn sàng chỉnh sửa trong một cái gì đó có cấu trúc hơn một chút so với văn bản thuần túy, như đánh dấu, bạn cũng có thể sử dụng pandoc để thực hiện chuyển đổi:

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

Tôi chưa thực sự thử nghiệm các chuyển đổi này, nhưng chúng nên hoạt động. Bạn có thể cần sử dụng các công cụ khác nhau tùy thuộc vào định dạng tệp.


thực hiện autocmd BufReadPost *.docx :%!pandoc -f docx -t markdownvề cơ bản có nghĩa là, rằng nếu tôi mở một tập tin .docx trong vim, nó sẽ thay vượt qua rằng tập tin thông qua :%!pandoc -f docx -t markdown, trước khi hiển thị nó trên cửa sổ VIM?
alpha_989

1
@ alpha_989 có.
xthrd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.