สิ่งที่ต้องติดตามเพื่อสร้างปลั๊กอินกลุ่ม?


12

ดังนั้นคำถามของฉันง่าย เป็นความคิดที่ดีหรือไม่ที่จะเรียนรู้การเขียนสคริปต์เป็นกลุ่มเพื่อสร้างเสียงเรียกเข้าหรือเราควรใช้ภาษาอื่นที่เป็นที่ยอมรับมากกว่านั้น

ตัวอย่างเช่นลิงค์นี้เปิดวิดีโอ YouTube ซึ่งแสดงวิธีใช้ Python เพื่อสร้างปลั๊กอินกลุ่ม

สคริปต์ที่เป็นกลุ่มจะไม่เป็นประโยชน์อย่างสิ้นเชิงเว้นแต่จะมีหนึ่งตั้งใจที่จะสร้างปลั๊กอินที่เป็นกลุ่มบางอย่าง ดังนั้นมีสิ่งใดที่ไม่สามารถทำได้ยกเว้นว่าใช้สคริปต์ vim เท่านั้น


2
โปรดทราบว่าหลายคนใช้ vimscript เพื่อกำหนดค่า Vim (อย่างละเอียด) โดยไม่ต้องสร้างหรือแจกจ่ายปลั๊กอินใด ๆ
VanLaser

คำตอบ:


12

ปลั๊กอินของฉันคือ 99% ใน VimL เหตุผลคือ VimL พร้อมใช้งานเมื่อติดตั้ง vim แล้ว มันซับซ้อนมากขึ้นกับภาษาอื่น ๆ - ยกตัวอย่างเช่นฉันไม่ค่อยได้ติดตั้ง Python ลงในกล่อง windows ที่ฉันใช้ Vim

แน่นอนว่า VimL นั้นค่อนข้างยุ่งยากมันมีคุณสมบัติเจ๋ง ๆ มากมาย แต่อย่างน้อยมันก็ง่ายกว่าที่จะพกพาบางอย่างไป

1% ที่ไม่ได้อยู่ใน VimL คือเมื่อฉันต้องการโต้ตอบกับ API ภายนอกที่ให้การเชื่อมโยงกับงูหลาม

BTW เกือบทุกสิ่งที่คุณเรียนรู้เกี่ยวกับการ VimL :substituteสามารถใช้โต้ตอบเมื่อคุณเล่นกับคำสั่งเช่น การแมปหรือมาโครส่วนใหญ่ไม่จำเป็นต้องใช้ไพ ธ อน


1
จริง ๆ แล้วฉันไม่พบ VimL ที่ยุ่งยาก แน่นอนฉันเห็นด้วยว่ามันขาดคุณสมบัติเจ๋ง ๆ และฟังก์ชั่นการใช้งานของภาษาระดับสูงกว่าเช่นหลาม แต่หลังจากทำงานกับมันมาระยะหนึ่งฉันก็พบว่า VimL ค่อนข้างน่าพอใจในการใช้งาน ฉันคิดว่าชื่อเสียงสำหรับ VimL นั้นแย่กว่าที่มันต้องการ
Karl Yngve Lervåg

ดี. ฉันต้องยอมรับว่ามีการดำเนินการหลายอย่างตั้งแต่ vim5.x (เมื่อฉันเริ่มใช้งาน) แต่ยังมีกรณีมุมที่เราต้องทำสิ่งที่ซับซ้อน ดูตัวอย่างmap()ที่สายคาดหรือ :map(ไม่เกี่ยวข้อง) ผมมักจะต้องเล่นกับ / รอบการประเมินผลสตริงที่จะมาถึงปลายของฉันเหมือนการสร้างแมปหรือการประมวลผลรายการสายฟังก์ชั่น ...
ลัค Hermitte

การเขียนโปรแกรมเสริม vim ในภาษาอื่นไม่ได้ช่วยให้คุณเรียนรู้ VimL ได้อย่างเต็มที่เพราะการผูกเข้ากับ python / ruby ​​/ etc ค่อนข้าง จำกัด และคุณก็ต้องลงเอยด้วยexecตัวอย่างของ VimL อยู่ดี มันช่วยให้คุณเขียนตรรกะหลักของคุณในภาษาที่คุณอาจจะสามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้น แต่คุณยังต้องเรียนรู้ VimL
ฮอบส์

12

หากคุณตั้งใจจะเขียนปลั๊กอินคุณควรอ่านบทความดี ๆ"การเขียนปลั๊กอินเสริม" โดย Steve Losh ; ไม่เพียง แต่สำหรับการตัดสินใจว่าคุณจะติดกับ VimL หรือไม่ แต่สำหรับคำแนะนำการปฏิบัติที่ดีที่สุด

นอกจากนี้ยังมีการสนทนาเล็กน้อยเกี่ยวกับScripting Vim กับภาษาอื่น ๆ :

ก่อนอื่นการใช้ภาษาอื่นจะต้องให้ผู้ใช้ปลั๊กอินของคุณใช้เวอร์ชัน Vim ที่คอมไพล์ด้วยการรองรับเวอร์ชันนั้น ในวันนี้และอายุมักจะไม่เป็นปัญหา แต่ถ้าคุณต้องการให้ปลั๊กอินของคุณทำงานทุกที่ก็ไม่ใช่ตัวเลือก

การใช้ภาษาอื่นช่วยเพิ่มค่าใช้จ่าย คุณไม่เพียง แต่ต้องเรียนรู้ Vimscript แต่ยังต้องมีส่วนต่อประสานระหว่าง Vim และภาษาด้วย สำหรับปลั๊กอินขนาดเล็กสิ่งนี้สามารถเพิ่มความซับซ้อนให้กับโครงการมากกว่าที่จะประหยัด แต่สำหรับปลั๊กอินขนาดใหญ่ที่สามารถจ่ายเอง มันขึ้นอยู่กับคุณที่จะตัดสินใจว่ามันคุ้มค่าหรือไม่

ในที่สุดการใช้ภาษาอื่นไม่ได้เป็นการป้องกันคุณจากความผิดปกติของ Vimscript คุณยังต้องเรียนรู้วิธีการทำสิ่งต่าง ๆ ส่วนใหญ่ใน Vimscript - การใช้ภาษาอื่นเพียงแค่ช่วยให้คุณห่อสิ่งนี้ให้เป็นระเบียบมากขึ้นกว่าที่คุณจะทำได้

ประสบการณ์ของฉันคือแม้เมื่อปลั๊กอินที่ไม่ใช่ VimL นั้นดีกว่าฉันก็เลยเปลี่ยนมาใช้ VimL บริสุทธิ์แทนในภายหลังส่วนใหญ่เป็นเพราะการพกพา เสียงเรียกใช้บนแทบทุกระบบ (แม้แต่ระบบที่น่าเกลียดและระบบเก่า) และค่าใช้จ่ายในการตั้งค่าการพึ่งพาหรือการปิดการใช้งานชั่วคราวของปลั๊กอินนั้นไม่คุ้มค่า (โดยเฉพาะถ้าคุณลืมว่าคุณปิดการใช้งานและพยายามใช้ .

แม้ว่าจะง่ายต่อการติดตั้งการพึ่งพาคุณสามารถประสบปัญหาบางอย่าง (เช่น: ปลั๊กอินที่ใช้ python บางตัวไม่ทำงาน 100% เมื่อมีการอ้างอิงจากโฟลเดอร์แชร์บนเครื่องเสมือน) นั่นคือสาเหตุที่ปลั๊กอินบางตัวที่ฉันเขียนใช้ VimL เท่านั้น

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