Ho lavorato in NetBeans e mi è piaciuta questa funzione: quando si posiziona il cursore in un nome di variabile, tutte le occorrenze della variabile vengono evidenziate. Questo è molto utile per la ricerca rapida di tutte le occorrenze della variabile. È possibile aggiungere questo comportamento a Vim?Evidenzia la variabile sotto il cursore in Vim come in NetBeans
risposta
Questa autocomando farà ciò che si vuole:
:autocmd CursorMoved * exe printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\'))
Edit: Ho usato il gruppo IncSearch
momento clou nel mio esempio, ma è possibile trovare altri colori da utilizzare per l'esecuzione di questo comando:
:so $VIMRUNTIME/syntax/hitest.vim
Se si imposta
:set hlsearch
per evidenziare tutte le occorrenze di un modello di ricerca, e quindi utilizzare *
o #
per trovare le occorrenze della parola sotto il cursore, che vi porterà qualche modo a ciò che si desidera. Tuttavia, ritengo che l'evidenziazione di una variabile sintattica esuli dallo scopo di VIM.
la tua soluzione è fantastica! l'unico problema è quando uso * il cursore salta al risultato di ricerca successivo. Non è possibile mantenere il cursore sulla parola corrente? – Meysam
@Meysam - puoi creare una semplice mappatura che fa proprio questo (non testato): nmap
penso che quello che vuoi veramente sia il seguente plugin di Shuhei Kubota:
http://www.vim.org/scripts/script.php?script_id=4306
Secondo la descrizione: 'Questo script mette in evidenza le parole sotto il cursore come molti IDE.'
Cheers.
Questa affermazione consentirà una variabile per abilitare/disabilitare evidenziare tutte le occorrenze della parola sotto il cursore:
:autocmd CursorMoved * exe exists("HlUnderCursor")?HlUnderCursor?printf('match IncSearch /\V\<%s\>/', escape(expand('<cword>'), '/\')):'match none':""
Si potrebbe attivare mettendo in evidenza con:
:let HlUnderCursor=1
E disabilitarlo con:
:let HlUnderCursor=0
Si potrebbe facilmente definire un tasto di scelta rapida per abilitare/disabilitare ng evidenziazione:
:nnoremap <silent> <F3> :exe "let HlUnderCursor=exists(\"HlUnderCursor\")?HlUnderCursor*-1+1:1"<CR>
Cancellare la variabile impedirebbe la dichiarazione partita da eseguire, e non è chiaro il momento clou corrente:
:unlet HlUnderCursor
Se non si desidera evidenziare parole della lingua (dichiarazioni/preprocs quali if
, #define
) quando il cursore si trova su queste parole, si può mettere questa funzione nel vostro .vimrc
in base alla risposta @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. sostituire parola sotto il cursore - Vim
- 2. Apri URL sotto il cursore in Vim con il browser
- 3. Vim evidenzia una parola con * senza spostare il cursore
- 4. Come cercare la stringa sotto il cursore in Eclipse
- 5. jQuery: Evidenzia elemento sotto il cursore del mouse?
- 6. Vim di ricerca con ag la parola sotto il cursore
- 7. Come andare alla fine del file in vim mantenendo la colonna corrente sotto il cursore?
- 8. Cerca vim aiuto per soggetto sotto il cursore
- 9. Come ottenere il nome del gruppo di evidenziazione sotto il cursore in vim?
- 10. Incollare in Vim senza spostare il cursore
- 11. Evidenzia argomenti nel corpo della funzione in vim
- 12. In VIM, perché non `db` cancella il carattere sotto il cursore?
- 13. Mantieni sempre il cursore centrato in Vim
- 14. Vim: evidenzia tutte le partite in incsearch
- 15. Come posso ottenere la parola sotto il cursore e il testo della riga corrente in vim script?
- 16. Come ottenere l'elemento sotto il cursore in WPF ListView
- 17. evidenzia solo la riga dello schermo in vim?
- 18. "super star" o trova la parola sotto il cursore equivalente in emacs
- 19. Rinomina pacchetto con sotto-pacchetti in netbeans
- 20. Perché VIM evidenzia alcune parole?
- 21. Come si modifica il cursore Vim in modalità Insert/Normal?
- 22. NetBeans - Evidenzia sintassi html con file twig
- 23. Cerca e sostituisci word con il cursore in Vim
- 24. VIM Evidenzia l'intera riga corrente
- 25. Come impostare la variabile di ambiente in Netbeans?
- 26. Vim: evidenzia le righe modificate
- 27. Cursore di salto/posizione in Vim
- 28. Imposta visibilità e/o colore di listchar o nascondi cchar in vim quando la linea di cursore evidenzia una riga
- 29. apre un file sotto il cursore in una finestra divisa
- 30. Come posso ottenere la parola sotto il cursore del mouse in Powerpoint 2013 usando C#?
c'è un modo per silenziare gli errori di corrispondenza? – UncleZeiv
@UncleZeiv: Non sono abbastanza sicuro di cosa intendi per errori –
se sposto il cursore alla fine di un commento in stile C (stella seguita da barra), ottengo 'E488: Caratteri finali: corrispondenza IncSearch/\ <*/\> ', e devo anche premere Invio prima di continuare, piuttosto fastidioso! Immagino che dovrebbe essere sfuggito in qualche modo e/o almeno sarebbe ok trovare un modo per mettere a tacere l'avvertimento. Ottimo consiglio comunque. – UncleZeiv