เป็นกลุ่ม - การกระทำที่เรียกสคริปต์ \ บนบันทึก \ เขียน?


14

นี่อาจจะดีกว่าสำหรับผู้ใช้ระดับสูง แต่ฉันคิดว่าเป็นเครื่องมือของการค้าขายมันอาจเป็นหัวข้อที่ดีกว่าสำหรับที่นี่ ฉันพบบ่อยเมื่อแก้ไขเป็นกลุ่มที่ฉันออกไปรันสคริปต์บางอย่างที่ฉันกำลังทดสอบแล้วกลับไปเป็นกลุ่ม (ใช่ฉันรู้ว่าฉันสามารถใช้:! คำสั่งเพื่อเรียกใช้สิ่งต่าง ๆ จากกลุ่ม) ฉันแค่สงสัยว่ามี วิธีที่จะขออะไรบางอย่างที่จะทำงานเมื่อไฟล์ถูกบันทึก (: w)

คำตอบ:



19

ดู:he :autocmdและ:he BufWritePost

บรรทัดจะมีลักษณะเช่นนี้:

:autocmd BufWritePost /path/to/file/or/pattern !command <afile>

หากสิ่งที่ไม่ได้ใช้งาน<afile>%:p


1

ฉันได้ส่วน "กลับไปเป็นกลุ่ม" แต่ฉันไม่แน่ใจว่าจะกด ": w" สั่งตัวเองได้อย่างไร (ซึ่งจะมีประโยชน์มากเพราะมันค่อนข้างสะท้อนสำหรับฉัน)

w | silent execute "! myscript" | redraw!

ฉันคิดว่ามันอาจจะดีกว่าสำหรับ superuser เช่นกัน


1

นี่เป็นการโปรโมตตัวเองอย่างโจ่งแจ้ง แต่ฉันเขียนปลั๊กอิน Vim ที่จะทำให้เชลล์สคริปต์บางตัวทำงานหลังจากautocmdเหตุการณ์Vim ที่เจาะจง ตัวอย่างเช่นสคริปต์ที่ชื่อ.bufwritepost.vimhook.shจะถูกเรียกใช้ (พร้อมกัน) ทุกครั้งที่มีการเรียกใช้BufWritePostคำสั่ง จากนั้นคุณสามารถรวมตรรกะใดก็ได้ตามใจชอบที่คุณต้องการทำสิ่งต่างๆไว้ในสคริปต์นั้น ปลั๊กอินจะถือว่าข้อกำหนดการตั้งชื่อเฉพาะของสคริปต์เหล่านี้และยังรองรับสคริปต์ "hook" ซึ่งเรียกเฉพาะไฟล์ที่ตรงกับชื่อบางชื่อหรือมีนามสกุลบางอย่างเท่านั้น และแน่นอนคุณมีอิสระที่จะเลือกautocmdกิจกรรมใด ๆ ที่คุณต้องการแม้ว่าฉันจะพบว่าBufWritePostเหมาะกับกรณีการใช้งานส่วนใหญ่ของฉัน

รายละเอียดแบบเต็ม: https://github.com/ahw/vim-hooks

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