ขั้นแรกการจับคู่ "tasktag" ของคุณไม่อนุญาตให้มีช่องว่างหรือ "ตัวคั่นคำ" อื่น ๆ แต่การจับคู่ "taskdone" ของคุณต้อง "เสร็จสิ้น" เพื่อเป็นคำที่ไม่ต่อเนื่องเนื่องจาก \ <และ \> อะตอมขอบเขตคำของคุณ
ประการที่สองการจับคู่ "taskdone" ของคุณถูกเขียนขึ้นเพื่อเน้นเฉพาะคำว่า "เสร็จสิ้น"
สมมติว่าฉันเข้าใจสิ่งที่คุณต้องการอย่างถูกต้องฉันได้ปรับเปลี่ยนการแข่งขันของคุณทั้งสอง:
syn match tasktag "\(\s\)\@<=@[a-zA-Z0-9_ ]\+"
syn match taskdone "@.*\<[Dd]one\>.*" containedin=tasktag
หากคุณยังไม่ได้ดำเนินการคุณจะต้องระบุการเน้นสำหรับการแข่งขันทั้งสอง ตัวอย่างเช่น:
highlight link tasktag TODO
highlight link taskdone Statement