Tôi muốn tìm kiếm nhiều chuỗi trong Vim/gVim và để chúng được đánh dấu bằng các màu khác nhau. Có cách nào để làm điều này với Vim out-the-box hoặc với một plug-in?Có cách nào để đánh dấu nhiều tìm kiếm trong (g) Vim không?
Trả lời
Hãy thử "Highlight multiple words", sử dụng matchadd()
.
MultipleSearch2 là một kịch bản mà được tích hợp với tìm kiếm của vim: http://www.vim.org/scripts/script.php?script_id=1183
MultipleSearch: Nêu bật nhiều tìm kiếm cùng một lúc, mỗi một màu sắc khác nhau.
http://www.vim.org/scripts/script.php?script_id=479
: Tìm kiếm // sẽ đánh dấu tất cả các lần xuất hiện trong bộ đệm hiện tại. Tiếp theo: Tìm kiếm sẽ làm nổi bật tất cả các lần xuất hiện trong bộ đệm hiện tại.
Điều này có thể được thực hiện thủ công, không có bất kỳ tập lệnh nào, cho hai mẫu tìm kiếm.
:match Search /pattern/
:match Search /<CTRL-R>/ # highlight the current search pattern
Tìm kiếm là tên của nhóm đánh dấu, sử dụng hoàn thành để chọn nhóm khác để đánh dấu bằng màu khác.
:match <TAB>
:match <TAB> # completion will list all highlight group
Điều này rất thuận tiện khi bạn không thể sử dụng cấu hình vim của riêng mình.
:match none # clear the match pattern to stop highlighting
Có, ngoài hộp bạn có thể sử dụng matchadd()
.
Để thêm đánh dấu, ví dụ: cho dấu khoảng trắng:
:highlight ExtraWhitespace ctermbg=grey guibg=grey
:call matchadd('ExtraWhitespace', '\s\+$', 11)
Để xem tất cả các trận đấu:
:echo getmatches()
Để loại bỏ các trận đấu sử dụng matchdelete()
. Ví dụ:
:call matchdelete(7)
My Mark plugin có thể làm nổi bật nhiều từ cùng màu khác nhau, như tìm kiếm tích hợp. Nó đi kèm với nhiều ánh xạ và lệnh, cho phép duy trì các mẫu và hỗ trợ nhiều bảng màu.
Nó có trang github với mô tả hướng dẫn? Nó không phải là dễ dàng để đọc trên vim.org. Cũng không dễ để báo cáo vấn đề. –
Làm cách nào để cài đặt plugin này của Vundle? Thừa nhận mã trong github vim-script quá cũ. –
@LiMingHung Phiên bản đó từ vim-script sẽ hoạt động, nhưng có, nó đã lỗi thời. Bạn có thể yêu cầu các chàng trai từ vim-script cập nhật nó; họ có một số vấn đề gây phiền nhiễu với scraper của họ. –
Tôi thích plugin nổi bật, đơn giản và đủ, có thể đánh dấu các từ khác nhau với màu sắc khác nhau một cách tự động.
Đối với tìm kiếm nhiều chuỗi trong vim bạn có thể làm như sau:
/search1\|search2
này hoạt động, và sẽ làm nổi bật cả search1
và search2
, nhưng với cùng một màu sắc. Bạn phải làm điều này trong trình soạn thảo vim.
nếu bạn muốn tìm kiếm1 nhưng không khớp với tìm kiếm2, làm cách nào tôi có thể sửa đổi dòng lệnh đó trong vim? – medev21
Có hai cách đơn giản để làm nổi bật nhiều từ trong trình chỉnh sửa vim.
- Chuyển đến chế độ tìm kiếm tức lànhập '/' và sau đó nhập \ v theo sau là các từ bạn muốn tìm kiếm được phân tách bằng '| '(ống).
Ex: /\ vword1 | word2 | word3 - Go sang chế độ tìm kiếm và gõ những từ bạn muốn tìm kiếm cách nhau '\ | '.
Ex: /word1 \ | word2 \ | word3
Về cơ bản cách đầu tiên đặt bạn ở chế độ biểu hiện thường xuyên để bạn không cần phải đặt bất kỳ lại thêm chém trước mỗi ống hoặc delimiters khác sử dụng để tìm kiếm.
Đã không hoạt động đối với tôi. Đối với bất cứ ai tự hỏi thử này: http://stackoverflow.com/questions/4162664/vim-highlight-a-list-of-words#comment4494852_4162735 –