C'è una scorciatoia in Vim per andare alla parola successiva che è la stessa come la parola cursore è su? Dovrebbe funzionare senza digitare la parola con il comando di ricerca /
.Vai alla prossima stessa parola in Vim senza usare ricerca
risposta
* passa alla successiva parola corrispondente e # va alla parola corrispondente precedente. * è così utile che a volte viene chiamata la stella super .
* e # sono i tuoi amici (direzioni avanti e indietro rispettivamente)
Per cercare la parola corrente sotto il cursore utilizzare '*'.
per la ricerca indietro per l'uso attuale del cursore parola '#'
Mentre tutte le risposte qui sono corrette, ho pensato che potrebbe essere utile per fornire un po 'più di informazioni.
Quello che *
esegue effettivamente è una ricerca in avanti per \<word-under-the-cursor\>
. Poiché questa è solo un'operazione di ricerca, puoi quindi andare avanti e indietro alle occorrenze successive utilizzando n
e N
. Ciò significa anche che la ricerca precedente è andata persa. #
è esattamente lo stesso di *
eccetto che esegue una ricerca inversa.
Gli \<
e \>
nella stringa di ricerca sono dei limiti di parole nel linguaggio regex di Vim, il che rende questo lavoro così piacevole. È anche importante notare che ciò che è considerato una "parola" è determinato dall'opzione iskeyword
. Vedere :help word
per ulteriori informazioni.
gd e le sue varianti sono anche molto utili. Funziona in modo leggermente diverso da *, nel senso che cerca la dichiarazione locale della parola sotto il cursore (o la dichiarazione globale se non esiste nessuno locale). È quindi possibile cercare tra i risultati con n come possibile con superstar, e salterà i commenti. Può essere utile quando stai modificando il codice.
:help gd
Grazie. C'è un modo per selezionare la parola ** w/o ** i confini? Cioè, ho una parola da cercare, che appare come una sotto-parola in più posti che voglio trovare. Per exampe: trova "giorno" e abbina "domenica", "lunedì". – ysap
E 'passato molto tempo da quando ho usato Vim estesamente, ma non ricordo un modo per farlo senza aggiungere la tua mappatura. Qualcosa di simile ": nnoremap *: lasciate @/= ampliata ('') normale n !" Forse. –
Grazie, e mi dispiace, avrei dovuto aggiornare questo commento. Ho fatto la domanda e ho trovato la risposta qui; https://stackoverflow.com/q/47063402/274579 – ysap