Tôi đã làm việc trong NetBeans và thích tính năng này: khi bạn đặt con trỏ vào một tên biến, tất cả các lần xuất hiện của biến sẽ được tô sáng. Điều này rất hữu ích để nhanh chóng tìm kiếm tất cả các lần xuất hiện của biến. Có thể thêm hành vi này vào Vim không?Đánh dấu biến dưới con trỏ trong Vim như trong NetBeans
Trả lời
autocommand này sẽ làm những gì bạn muốn:
:autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
Edit: Tôi đã sử dụng nhóm IncSearch
nổi bật trong ví dụ của tôi, nhưng bạn có thể thấy các màu khác để sử dụng bằng cách chạy này lệnh:
:so $VIMRUNTIME/syntax/hitest.vim
Nếu bạn đặt
:set hlsearch
để làm nổi bật tất cả các lần xuất hiện của một mô hình tìm kiếm, và sau đó sử dụng *
hoặc #
để tìm lần xuất hiện của từ dưới con trỏ của bạn, mà sẽ giúp bạn có một số cách để những gì bạn muốn. Tuy nhiên tôi nghĩ rằng việc làm nổi bật biến cú pháp nhận thức nằm ngoài phạm vi của VIM.
giải pháp của bạn là tuyệt vời! vấn đề duy nhất là khi tôi sử dụng * con trỏ nhảy qua kết quả tìm kiếm tiếp theo. Không phải là nó có thể giữ con trỏ trên từ hiện tại? – Meysam
@Meysam - bạn có thể tạo một ánh xạ đơn giản thực hiện điều đó (chưa được kiểm tra): nmap
tôi nghĩ rằng những gì bạn thực sự muốn là plugin sau đây của Shuhei Kubota:
http://www.vim.org/scripts/script.php?script_id=4306
Theo mô tả: 'Kịch bản này nhấn mạnh từ dưới con trỏ giống như nhiều IDE.'
Chúc mừng.
Tuyên bố này sẽ cho phép một biến để bật/tắt làm nổi bật tất cả các lần xuất hiện của từ dưới con trỏ:
:autocmd CursorMoved * exe exists("HlUnderCursor")?HlUnderCursor?printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\')):'match none':""
Một sẽ kích hoạt nổi bật với:
:let HlUnderCursor=1
Và vô hiệu hóa nó với:
:let HlUnderCursor=0
Người ta có thể dễ dàng xác định phím tắt để bật/tắt ng nổi bật:
:nnoremap <silent> <F3> :exe "let HlUnderCursor=exists(\"HlUnderCursor\")?HlUnderCursor*-1+1:1"<CR>
Xóa biến sẽ ngăn chặn sự tuyên bố trận đấu từ thực hiện, và không rõ ràng nổi bật hiện nay:
:unlet HlUnderCursor
Nếu bạn không muốn nhấn mạnh từ ngôn ngữ (báo cáo/preprocs như if
, #define
) khi con trỏ của bạn nằm trên những lời này, bạn có thể đặt chức năng này trong .vimrc
của bạn dựa trên câu trả lời @too_much_php:
let g:no_highlight_group_for_current_word=["Statement", "Comment", "Type", "PreProc"]
function s:HighlightWordUnderCursor()
let l:syntaxgroup = synIDattr(synIDtrans(synID(line("."), stridx(getline("."), expand('<cword>')) + 1, 1)), "name")
if (index(g:no_highlight_group_for_current_word, l:syntaxgroup) == -1)
exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
else
exe 'match IncSearch /\V\<\>/'
endif
endfunction
autocmd CursorMoved * call s:HighlightWordUnderCursor()
- 1. jQuery: Đánh dấu phần tử bên dưới con trỏ chuột?
- 2. Vim tập tin mở dưới con trỏ
- 3. Con trỏ bị mất trong văn bản được đánh dấu - Vim
- 4. Nhiều con trỏ cho Netbeans?
- 5. Vim: biến không xác định được bỏ đánh dấu
- 6. Mở tập tin từ đường dẫn đầy đủ dưới con trỏ trong Vim
- 7. Con trỏ Chuyển/Vị trí trong Vim
- 8. Con trỏ và biến trong lớp
- 9. Cách tìm chuỗi dưới con trỏ trong Eclipse
- 10. Có lệnh nào trong Vim/Vi để di chuyển con trỏ đến cuối điểm đánh dấu tìm kiếm không?
- 11. Xóa từ con trỏ đến cuối ngoặc (vv) trong vim
- 12. Trong VIM, tại sao không `db` xóa ký tự bên dưới con trỏ?
- 13. Làm thế nào để có được tên nhóm làm nổi bật dưới con trỏ trong vim?
- 14. Làm cách nào để đánh dấu nhiều biến trong Eclipse?
- 15. Con trỏ biến tĩnh?
- 16. hebrew xuất hiện dưới dạng dấu hỏi trong netbeans
- 17. Đánh dấu mẫu tìm kiếm mà không cần di chuyển con trỏ
- 18. Vị trí con trỏ trong chữ viết tắt VIM
- 19. Tuỳ chọn dấu hoa thị trong con trỏ hàm?
- 20. Cách tắt các phím Esc và con trỏ trong vim
- 21. Con trỏ không có dấu vết cho các con trỏ cấu trúc trong C
- 22. Nhận mặt chữ dưới con trỏ trong Emacs
- 23. emacs: đánh dấu dòng hiện tại bằng gạch dưới nó
- 24. Thay đổi mã dấu phụ như trong NetBeans
- 25. Trong C, là các con trỏ mảng hay được sử dụng như con trỏ?
- 26. Luôn giữ con trỏ ở giữa Vim
- 27. mở tệp dưới con trỏ trong cửa sổ phân tách
- 28. Dừng các điểm đánh dấu bản đồ google có kiểu con trỏ chuột khi di chuột?
- 29. Đánh dấu chuỗi như an toàn trong Mako
- 30. Tìm kiếm gia tăng VIM, cách sao chép chuỗi phù hợp dưới con trỏ?
có cách nào để tắt tiếng các lỗi trùng khớp không? – UncleZeiv
@UncleZeiv: Tôi không chắc chắn ý bạn là gì bởi lỗi –
nếu tôi di chuyển con trỏ ở cuối chú thích kiểu C (dấu sao theo dấu gạch chéo), tôi nhận được 'E488: Ký tự nhân vật: khớp IncSearch/\ <*/\> ', và tôi thậm chí phải nhấn Enter trước khi tiếp tục, khá khó chịu! Tôi đoán nó nên được thoát bằng cách nào đó và/hoặc ít nhất nó sẽ là ok để tìm một cách để làm im lặng cảnh báo. Tuyệt vời tip anyway. – UncleZeiv