một lệnh tô sáng đặt lại các điểm nổi bật đã khai báo trước đó


7

Tôi đang cố điều chỉnh phần tô sáng trong vim của mình và tôi đang cố gắng đặt một số nhóm cú pháp thông qua matchlệnh và tô sáng chúng trong vimrctệp của mình , vì các nhóm đó là chung chung và không thuộc bất kỳ tệp cú pháp ngôn ngữ cụ thể nào.

Nhưng cách tiếp cận của tôi chỉ hoạt động đối với một đánh dấu duy nhất, ngay khi tôi thêm một thể hiện khác của một highlight/matchcặp mà những cái được khai báo trước đó không hoạt động, chỉ có cái cuối cùng hoạt động cho đến khi tôi thêm cái khác highlight/match.

Đây là mã (phần có liên quan) của vimrc của tôi. Ví dụ này hoạt động:

hi NewLineWin ctermfg=248 guifg=#999999
match NewLineWin /\r\n/

Và điều này không (chỉ cặp cuối cùng hi/match):

hi NewLineWin ctermfg=248 guifg=#999999
match NewLineWin /\r\n/
hi WhiteSpaceChar ctermfg=252 guifg=#999999
match WhiteSpaceChar / /

Bất cứ ai có thể giúp tôi với điều này, làm thế nào để làm cho nó hoạt động?

Câu trả lời:


8

Từ :help :match

Các trận đấu nổi bật bằng cách sử dụng: trận đấu được giới hạn trong ba
trận đấu (ngoài: trận đấu ,: 2match và: 3atch có
sẵn). matchadd () không có giới hạn này và
ngoài ra, có thể ưu tiên các trận đấu.

Vì vậy, bạn có thể sử dụng:

hi NewLineWin ctermfg=248 guifg=#999999
match NewLineWin /\r\n/
hi WhiteSpaceChar ctermfg=252 guifg=#999999
2match WhiteSpaceChar / /

Hoặc là:

hi NewLineWin ctermfg=248 guifg=#999999
match NewLineWin /\r\n/
hi WhiteSpaceChar ctermfg=252 guifg=#999999
call matchadd("WhiteSpaceChar", " ")

matchadd()cũng cho phép linh hoạt hơn nữa, chẳng hạn như xóa hoặc ưu tiên các trận đấu. Xem :help matchadd()để biết thêm chi tiết.

Ngoài ra, hãy nhìn vào cú pháp tô sáng: :help syntax


3

Còn việc sử dụng

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

:hi NewLineWin ctermfg=248 guifg=#999999
:syntax match NewLineWin /\r\n/
:hi WhiteSpaceChar ctermfg=252 guifg=#999999
:syntax match WhiteSpaceChar / /

Bạn có thể sử dụng bất kỳ số lượng của trận đấu như vậy ...

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.