Wiem o :nohl
i używam go cały czas, używam również łatwego ruchu, więc wyróżnienie nie jest na mojej drodze, gdy po prostu przenosimy się do lokalizacji wyszukiwania. To wchodzi mi w drogę po naciśnięciu klawisza n
lub N
.VIM: Jak wyłączyć podświetlenie wyszukiwania po upływie czasu (X sekund)?
szukam sposobu, aby wyłączyć podświetlenie wyszukiwarki po 3 seconds
prasowania n
lub N
, również przez wzgląd na kompletność Chciałbym sposób również wyłączyć go po wyszukaniu na przykład /search_word<CR>
.
Wreszcie, musi to być polecenie bez blokowania.
Dzięki, powoli dostaję się do vimscript, ale ten jest poza moją ligą, ponieważ nie widziałem wielu przykładów poleceń z timeoutami.
EDIT:
Po niektórych komentarzach i badań online istnieje wiele wskazań nie jest dobrym sposobem, aby to zrobić z vimscript.
Szukam sposobu na zrobienie tego w stabilny sposób z dowolnym językiem, np. Perl, Python, Ruby.
EDIT 2:
To jest moje rozwiązanie na podstawie odpowiedzi @ Dhruvę-Sagar za: (I oznaczony jako swoją odpowiedź prawidłowa, ponieważ dał mi szkielet dla niego).
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
Wielowątkowość jest trudna i trudna do zrobienia w vimscript. możesz stworzyć mapę dla ': noh', byłoby to najłatwiejsze rozwiązanie. Wiesz, że po '/ foo'' foo' był zapisany w '/' reg, nie ważne czy wykonałeś 'noh' czy nie, następnym razem gdy naciśniesz' n lub N', dopasowany tekst zostanie podświetlony, to poręczny i całkiem w porządku dla mnie. – Kent