2013-03-29 16 views
22

In un buffer di grandi dimensioni, mi piacerebbe scorrere verso il basso fino all'ultima occorrenza del modello modello.Vim trovare l'ultima occorrenza di

Se io sono alla prima occorrenza, è abbastanza facile per cercare il modello/, invertire il mossa alla prossima occorrenzan con N e arrivare all'ultimo ..

Se sono nel mezzo di una sequenza di eventi .. c'è un modo migliore per saltare?

risposta

49

Un modo semplice per trovare l'ultima occorrenza è quello di saltare alla fine e cercare all'indietro:

G?foo<CR> 

In realtà, c'è un modo ancora più semplice se si sta già cercando qualcosa. Basta saltare alla fine e ricerca all'indietro per la cosa stavi solo cercando:

GN 

Semplice come quello.

Modifica: se la ricerca si è verificata sull'ultima riga, quindi GN si salta sopra fino alla penultima occorrenza. Utilizzare ggN risolverebbe questo problema. (E gg?foo<CR> per ragioni analoghe.)

+0

Naturalmente. Hai ragione. Grazie! – Robottinosino

+0

ha, penso che la mia risposta sia la stessa del tuo secondo punto. Non ho visto quel punto quando ho scritto il mio. rimuovi il mio e il tuo! +1 – Kent

+5

suggerirei anche il mio 'ggN', anche se ha un altro colpo di chiave. Perché 'GN' funziona solo se l'ultima corrispondenza non si trova nell'ultima riga del file. Se si trova nell'ultima riga, il tuo 'N' vi salterà sopra. – Kent

2

Una soluzione potenzialmente più:

:vim foo % | clast 
+0

'type clast' ->' -bash: tipo: clast: non trovato' – Robottinosino

+0

Hmmmmmmm ... Cosa? – romainl

+0

Sto assumendo che 'clast' è un programma che dovrebbe essere sul $ PATH? Se è così, ho provato a "digitarlo" per individuarlo (come 'which') ma mi ha dato quel messaggio di errore .. Cos'è' clast'? – Robottinosino

0

Un'altra soluzione è:

G/\(.\{-}\zs\(foo\)\)\{1,}<CR> 
+0

@StackOverflowed, cosa intendi? – Reman

+0

Scusa, stavo solo cercando di capirlo :). – StackOverflowed

Problemi correlati