2014-05-16 12 views
5

Vorrei essere in grado di evidenziare la parola sotto il cursore senza passare al risultato successivo.Vim evidenzia una parola con * senza spostare il cursore

La soluzione che ho trovato utilizza un marcatore:

noremap * mP*N`P 

C'è qualche soluzione migliore?

Ho notato che vim non è veramente buono per mantenere la posizione del cursore dopo l'esecuzione dei comandi. Ad esempio, quando cambio il buffer, il cursore torna all'inizio della linea.

Potrei essere interessante avere un'impostazione globale per questo.

+0

Questa pagina wiki ha una sezione su questo: http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches –

risposta

9

Purtroppo non ci sono impostazioni globali.

Una soluzione comune al "evidenziare senza muoversi" problema è:

nnoremap * *`` 

Una soluzione al problema "mantenere la posizione del cursore quando si passa buffers" è:

augroup CursorPosition 
    autocmd! 
    autocmd BufLeave * let b:winview = winsaveview() 
    autocmd BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif 
augroup END 
4

Come dettagliato here , è possibile definire una mappa come segue:

:nnoremap <F8> :let @/='\<<C-R>=expand("<cword>")<CR>\>'<CR>:set hls<CR>

2

Il mio SearchHighlighting plugin modifica il comando *, in modo che non salti alla corrispondenza successiva; puoi ancora saltare fornendo un [count]. Estende anche questo comando alla modalità visiva (un'altra caratteristica richiesta frequentemente non in Vim), e altri ancora.

+0

Nessun repository github bundle/vundle per il plug-in? – nowox

+0

https://github.com/vim-scripts/SearchHighlighting –

Problemi correlati