Thiết lập nhiều quy tắc tô sáng trong vim


16

Tôi đang cố gắng thiết lập các quy tắc để làm nổi bật cả khoảng trắng và các dòng có độ dài nhất định bằng cách thêm phần này vào .vimrc của tôi:

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

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

Tuy nhiên, nó dường như chỉ nhận bất cứ điều gì là cuối cùng. Tôi không thể tìm ra cách để cả hai cùng làm việc.

Câu trả lời:


9

Một chiều:

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

Khác:

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.\+/

Cũng có sẵn : 3match. Tối đa ba trận đấu có thể được kích hoạt cùng một lúc. Hoặc bạn có thể sử dụng matchadd()để tạo các trận đấu mà không giới hạn số lượng.

Lưu ý: 3match được sử dụng bởi matchparen, vì vậy sẽ xung đột nếu bạn sử dụng nó.


7

Sử dụng matchadd(), vì vậy hãy thêm cái này vào .vimrc:

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

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

Để xem tất cả các trận đấu:

:echo getmatches()

Để loại bỏ phù hợp sử dụng matchdelete().


1

Những gì về việc sử dụng này

: sy [ntax] khớp với {tên nhóm} [{tùy chọn}] [loại trừ] {mẫu} [{tùy chọn}]

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

Bạn có thể kết hợp nhiều số mẫu bằng cách sử dụng ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.