Ogni volta che vuoi cercare del testo in VIM, digiti /e quindi la stringa che stai cercando.
Tuttavia, quando la stringa è lunga e vuoi farlo più volte, c'è un modo per farlo in modo da non dover digitare /andthisreallylongstring
più di una volta?
Ogni volta che vuoi cercare del testo in VIM, digiti /e quindi la stringa che stai cercando.
Tuttavia, quando la stringa è lunga e vuoi farlo più volte, c'è un modo per farlo in modo da non dover digitare /andthisreallylongstring
più di una volta?
Risposte:
Premi "n" dopo aver completato una ricerca, quindi ripeterà l'azione precedente (ricerca).
N
andrà al risultato precedente.
/
q/
mostrerà una finestra modificabile con tutti i termini di ricerca recenti.
/
e Invio si ripeterà la ricerca precedente. Colpire ?
e Invio ripeterà la ricerca precedente all'indietro.
/Ctrl-F
è un'alternativa a q/
quella che potrebbe essere un mnemonico più semplice (ctrl-f == find). Come q, funziona anche per la modalità di comando.
Se la stringa cercata si trova sotto il cursore, è possibile digitare *per cercarla in avanti o #per cercarla all'indietro.
Come di solito cerco è qualcosa di simile;
Vim mantiene una cronologia delle tue ricerche, quindi se hai bisogno di ricerche precedenti puoi premere '/' e usare i tasti SU e GIÙ o <Ctrl-P> <Ctrl-N> per sfogliare la cronologia delle ricerche.
Puoi anche usare '?' invece di '/' per cercare all'indietro.
Mi piace anche usare:
set ignorecase smartcase
Ora sarà una ricerca con distinzione tra maiuscole e minuscole se nella stringa di ricerca sono presenti caratteri maiuscoli.
Altri due suggerimenti che possono rendere la tua ricerca più efficiente sono set hlsearch
e
set incsearch
.
set hlsearch
, beh, evidenzia i risultati della tua ricerca. Digita :noh
per disattivarli quando non ti servono più.
set incsearch
attiva la ricerca incrementale.
Estratto da :help incsearch
Durante la digitazione di un comando di ricerca, mostra dove corrisponde il modello, così come è stato digitato finora. La stringa corrispondente viene evidenziata. Se il modello non è valido o non trovato, non viene mostrato nulla. Lo schermo verrà aggiornato spesso, questo è utile solo su terminali veloci.
Senza incsearch
, i risultati verranno visualizzati solo dopo aver premuto <CR>
la parola chiave di ricerca.
Esempio:
Vuoi cercare wildignore
Digiti /wild
e la prima corrispondenza viene evidenziata automaticamente.
Quindi digitare i
e si passa alla corrispondenza corretta successiva.
Un altro suggerimento non ancora trattato: premendo i caratteri q
e /
, quindi , verrà visualizzato un elenco dei termini di ricerca precedenti. È possibile modificarli come qualsiasi altra riga di un documento, quindi premere Invio per riutilizzarli per una nuova ricerca.
Dopo aver premuto /per avviare la ricerca, è possibile scorrere verso l'alto per scorrere la cronologia delle ricerche.
Puoi inserire un'espressione regolare per evitare di dover digitare l'intero termine di ricerca: and.*longstring
Colpire / senza alcun argomento dopo non funziona per te? Su tutti i nostri sistemi, ciò provoca una ripetizione di qualsiasi ricerca effettuata per ultima.
C'è un bel modello che puoi seguire per cercare il testo strappato . Quindi non è nemmeno necessario digitare la parola in sé, se ci si è navigati con mezzi diversi da una ricerca. In breve, se sei sul primo carattere della parola che vuoi cercare:
v
e
y
/
Ctrl-r
0
Enter
(quindi continua alla prossima partita con n o N)
Tuttavia *
(o #
) esegue praticamente la stessa cosa di tutti questi comandi. L'unica differenza è che puoi essere flessibile in base alla quantità di parola che specifichi (anziché e, alla fine della parola, puoi selezionare quanto vuoi, ad es. 9l)
/string
- Cerca avanti per stringa?string
- Cerca di nuovo la stringan
- Cerca la prossima istanza di stringaN
- Cerca l'istanza precedente della stringaMolto tempo durante la programmazione che vorrò cercare aVeryLongVariableNameInTheProgram
.
In vim puoi facilmente strappare il testo in un buffer / registro e quindi cercarlo:
"Byw
per trascinare il testo aVeryLongVariableNameInTheProgram
nel buffer B (scegli il tuo preferito, ho usato B)/^RB
(barra, Ctrl-R, B) per incollare il buffer B sulla linea di ricercaOvviamente puoi anche strattonare fino alla fine della riga, ecc. Invece di strattonare una sola parola: mi capita di usare sempre la sequenza sopra.
Inoltre, è possibile incollare il contenuto di qualsiasi registro nel prompt di ricerca premendo Ctrl+ Re quindi il nome del registro, ad esempio, / Ctrl+ R0 Enter.
La stringa lunga in cui stai inserendo un nome variabile? O una lunga stringa che è nel tuo testo? Quindi premi *
per cercare la parola / stringa sotto il cursore.