ฉันใช้ultisnipsมาหลายสัปดาห์แล้ว
ฉันคิดว่าข้อดีหลัก ๆ ของปลั๊กอินนี้คือ:
- มันค่อนข้างเร็วแม้จะมีตัวอย่างจำนวนมาก
- ไวยากรณ์พื้นฐานในการกำหนดตัวอย่างใหม่นั้นง่ายต่อการเข้าใจดังนั้นจึงเป็นเรื่องง่ายที่จะสร้างตัวอย่างใหม่อย่างรวดเร็วทำสิ่งที่คุณต้องการจะทำ (สำหรับตัวอย่างที่ซับซ้อนมากขึ้นอาจต้องมีการทำงานเพิ่มเติม)
- มันใช้งานได้ดีมากนอกกรอบ; การกำหนดค่าพื้นฐานช่วยให้คุณใช้ตัวอย่างได้อย่างรวดเร็ว
- มันสามารถกำหนดค่าได้จริง ๆ แม้ว่าการกำหนดค่าพื้นฐานจะทำงานได้ดีหากคุณเป็นผู้ใช้ระดับสูงคุณสามารถปรับแต่งได้อย่างประณีต
ก่อนอื่น ultisnips คือเอ็นจิ้นตัวอย่างซึ่งหมายความว่าปลั๊กอินมีคุณสมบัติในการใช้ตัวอย่าง แต่ไม่ได้จัดเตรียมตัวอย่างเอง เพื่อให้ได้ตัวอย่างที่ผู้เขียนแนะนำ
ที่เป็นกลุ่มตัวอย่าง-
เมื่อคุณติดตั้งปลั๊กอินทั้งสองแล้วคุณจะสามารถใช้ตัวอย่างข้อมูลได้
คำจำกัดความของตัวอย่างถูกเก็บไว้ในไฟล์ที่ชื่อรูปแบบต่อไปนี้:
ft.snippets
, ft_*.snippets
หรือft/*
, โดยที่ft
'filetype' ของเอกสารปัจจุบันและ*
เป็น wildcard เหมือนเชลล์ที่ตรงกับสตริงใด ๆ รวมถึงสตริงว่าง (โปรดทราบว่าcuda.cpp
ได้รับการสนับสนุนไวยากรณ์ชนิดไฟล์ที่เป็นจุด)
วิธีนี้ข้อมูลโค้ดเฉพาะสำหรับชนิดไฟล์จะถูกขยายเมื่อตั้งค่าชนิดไฟล์ของบัฟเฟอร์เท่านั้น ชนิดไฟล์พิเศษall
มีให้เพื่อสร้างตัวอย่างข้อมูลที่ขยายบนบัฟเฟอร์ทั้งหมด
นอกเหนือจากตัวอย่างที่ให้บริการโดย vim-snippets ผู้ใช้สามารถกำหนดตัวอย่างของตัวเอง คำแนะนำของฉันคือการวางไว้ในไดเรกทอรี
~/.vim/my-snippets/Ultisnips
ด้วยวิธีนี้ Ultisnips จะค้นหาได้โดยไม่ต้องกำหนดค่าเพิ่มเติมและง่ายต่อการบำรุงรักษาไว้ในที่เก็บ dotfile
ในการขยายตัวอย่าง Ultisnips มีตัวแปรg:UltiSnipsExpandTrigger
ที่กำหนดการแมปซึ่งจะทำให้เกิดการขยายตัว (ฉันเลือก
**ที่จะสะดวกสำหรับฉัน) โปรดทราบว่าการผสานควรเป็นไปได้ แต่ฉันไม่ได้ทดสอบด้วยตัวเอง)
สำหรับผู้ใช้ระดับสูง Ultisnips ยังมีฟังก์ชั่นบางอย่างเพื่อปรับแต่งพฤติกรรมของการขยายตัว ดู:h
UltiSnips-trigger-functions
นี่เป็นผู้จัดการตัวอย่างคนแรกที่ฉันใช้อย่างกว้างขวางและฉันคิดว่านี่เป็นสิ่งที่ดีที่เริ่มต้นด้วยความเรียบง่ายนอกกรอบและความเป็นไปได้ที่จะปรับ
ในที่สุดนี่คือรายการของ screencasts ที่ให้การแนะนำที่ดีกับปลั๊กอิน: