Tôi biết về :nohl
và sử dụng mọi lúc, tôi cũng sử dụng chuyển động dễ dàng để không làm nổi bật khi di chuyển đến vị trí tìm kiếm. Nó theo cách của tôi sau khi nhấn n
hoặc N
.VIM: Cách tắt đánh dấu tìm kiếm sau khi hết giờ (X giây)
Tôi đang tìm kiếm một cách để vô hiệu hóa nổi bật tìm kiếm sau khi 3 seconds
của nhấn n
hoặc N
, cũng cho đầy đủ vì tôi muốn một cách để cũng vô hiệu hóa nó sau khi tìm kiếm ví dụ /search_word<CR>
.
Cuối cùng, đó phải là lệnh không chặn.
Cảm ơn, tôi đang dần dần đi vào vimscript nhưng điều này là ra khỏi giải đấu của tôi kể từ khi tôi đã không nhìn thấy nhiều ví dụ về lệnh với timeout ra khỏi đó.
EDIT:
Sau khi một số ý kiến và nghiên cứu trực tuyến có rất nhiều dấu hiệu cho thấy không có một cách tốt để làm điều này với vimscript.
Tôi đang tìm cách để làm điều này một cách ổn định với bất kỳ ngôn ngữ nào, ví dụ: Perl, Python, Ruby.
EDIT 2:
này được giải pháp của tôi dựa trên phản ứng @ dhruva-sagar của: (Tôi đánh dấu câu trả lời của mình như là đúng vì ông đã cho tôi bộ xương cho nó).
augroup NoHLSearch
au!
autocmd CursorHold,CursorMoved * call <SID>NoHLAfter(4)
augroup END
function! s:NoHLAfter(n)
if !exists('g:nohl_starttime')
let g:nohl_starttime = localtime()
else
if v:hlsearch && (localtime() - g:nohl_starttime) >= a:n
:nohlsearch
redraw
unlet g:nohl_starttime
endif
endif
endfunction
đa luồng là khó khăn và khó thực hiện trong vimscript. bạn có thể tạo một bản đồ cho ': noh', nó sẽ là giải pháp đơn giản nhất. Bạn biết rằng sau khi bạn '/ foo'' foo' được lưu trữ trong '/' reg, không có vấn đề gì nếu bạn thực hiện 'noh' hay không, lần sau bạn nhấn' n hoặc N', văn bản phù hợp sẽ được đánh dấu, nó là tiện dụng và khá ok cho tôi. – Kent