เป็นไปได้หรือไม่ที่จะทำงานกับ. odt, .doc, .docx, .rtf และรูปแบบอื่น ๆ ที่ไม่ใช่ข้อความธรรมดาใน Vim?


14

บางครั้งมีคนส่งฉัน.odt, .docและ.docxไฟล์; การเปิดพวกเขาใน OpenOffice นั้นเป็นเรื่องที่เจ็บปวดเสมอเพราะอย่างนั้น OpenOffice

ตอนนี้ฉันใช้เครื่องมือ commandline ที่หลากหลาย (เช่นodt2txt) เพื่อแปลงไฟล์เหล่านี้เป็นข้อความธรรมดาบันทึกข้อความธรรมดาเป็นไฟล์ชั่วคราวจากนั้นดู (และอาจแก้ไข) ใน Vim

สามารถทำได้ง่ายกว่านี้ไหม บางทีมีบางอย่างกับกลุ่มอัตโนมัติหรือ หรืออาจจะมีวิธีที่ดีกว่า ฉันอยากจะทำ:

$ vim file.odt

เป็นกลุ่มแล้วดูแลการแปลงสำหรับฉันหรือไม่

ดียิ่งขึ้น (คะแนนโบนัส) จะเป็นถ้าฉันยังสามารถบันทึกไฟล์ (ไปfile.txt) แต่สิ่งนี้จะไม่ถูกสร้างขึ้นจนกว่าฉันจะเขียน ...

คำตอบ:


13

คุณควรจะเพิ่มสิ่งนี้ใน vimrc ของคุณ:

autocmd BufReadPost *.odt :%!odt2txt %

ที่จะส่งบัฟเฟอร์ทั้งผ่านodt2txtโปรแกรมหลังจากที่ได้อ่านในโดยเป็นกลุ่ม .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โดยทั่วไปหมายถึงว่าถ้าผมเปิดไฟล์ docx ในกลุ่มก็จะผ่านแทนแฟ้มที่ผ่าน:%!pandoc -f docx -t markdownก่อนที่จะแสดงบนหน้าต่าง VIM หรือไม่
alpha_989

1
@ alpha_989 ใช่
xthrd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.