2011-11-30 13 views
10

Sono terribile nello scrivere espressioni regolari vim. Ogni volta che ne scrivo uno per fare una sottotitolazione, non funziona mai la prima volta perché inevitabilmente finisco per scrivere qualcosa in Perl invece che in vim. Sto molto meglio quando faccio una ricerca semplice perché ho incsearch acceso e posso vedere in tempo reale se il mio schema corrisponde.Ricerca incrementale Vim durante la sostituzione

C'è un modo per far sì che il comando s si comporti come/(eseguendo una ricerca incrementale) mentre sto tentando di scrivere uno schema corretto?

risposta

18

Non sono sicuro, ma penso che non ci sia un modo per farlo. A proposito, uso un piccolo trucco per accelerare le mie sostituzioni. Se fai qualcosa come:

:%s//bar 

sulla riga di comando Vim utilizzerà la tua ultima ricerca. Quindi, non è esattamente ciò di cui hai bisogno, ma è comunque un modo per aumentare un po 'la velocità delle sostituzioni.

+1

Questo è un buon consiglio. Puoi semplicemente digitare prima la tua ricerca, quindi eseguire quella scorciatoia – Matt

+1

+1, buon vimtip :) –

+1

Wow, quel suggerimento mi farà risparmiare molte ore nel corso della mia carriera. Grazie! – notlesh

3

Si potrebbe provare questo piccolo trucco per comporre il modello di ricerca utilizzando incsearch e quindi copiare modello in linea di comando di sostituzione:

  1. Componi modello utilizzando la modalità normale/... È possibile visualizzare i vostri modelli sono corrispondenti . L'ultimo modello verrà memorizzato in @/register.

  2. Vai alla modalità riga di comando e inserire questa riga parziale: :%s/

  3. Ora premere questi tasti: <c-r>[email protected]/ Questo copierà ultimo modello di ricerca nel comando sostituto che si sta scrivendo. (<c-r> sta premendo il tasto control-r, non digitando i caratteri.)

Problemi correlati