การตั้งค่ากฎไฮไลต์หลายรายการในกลุ่ม


16

ฉันกำลังพยายามตั้งค่ากฎเพื่อเน้นทั้งช่องว่างต่อท้ายและบรรทัดที่เกินความยาวโดยเพิ่มสิ่งนี้ลงใน. vimrc ของฉัน:

highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray guibg=lightgray
match OverLength /\%>80v.\+/

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

คำตอบ:


9

ทางเดียว:

highlight EWOL ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match EWOL /\%>20v.\+\|\s\+$/

อื่น ๆ :

highlight ExtraWhitespace ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
2match OverLength /\%>80v.\+/

ยังมีอยู่: 3match. สามารถจับคู่ได้สูงสุดสามครั้งต่อครั้ง หรือคุณสามารถใช้matchadd()เพื่อสร้างการแข่งขันโดยไม่ จำกัด จำนวน

หมายเหตุ: 3match matchparen ถูกใช้งานดังนั้นจะขัดแย้งกันถ้าคุณใช้มัน


7

ใช้matchadd()เพื่อเพิ่มสิ่งนี้ใน.vimrc:

highlight ExtraWhitespace ctermbg=grey guibg=grey
call matchadd('ExtraWhitespace', '\s\+$', 11)

highlight OverLength ctermbg=lightgrey guibg=lightgrey
call matchadd('OverLength', '\%>80v.\+')

วิธีดูการแข่งขันทั้งหมด:

:echo getmatches()

matchdelete()ในการลบตรงกับการใช้งาน


1

เกี่ยวกับการใช้สิ่งนี้

: sy [ntax] ตรงกับ {group-name} [{options}] [แยกตัวเลือก] {pattern} [{options}]

:highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
:syntax match ExtraWhitespace /\s\+$/
:highlight OverLength ctermbg=lightgray guibg=lightgray
:syntax match OverLength /\%>80v.\+/

คุณสามารถจับคู่รูปแบบจำนวนมากโดยใช้ ...

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