2010-05-29 13 views
8

Ecco lo scenario: ho un grosso file pieno di ogni sorta di immondizia eclettica che voglio regexare. Mi aggiro e mi viene in mente un modello di ricerca perfetto usando il comando / e vediamo cosa evidenzia.Come richiamare il modello di ricerca quando si scrive il modello regolare di regex in Vim?

Ora voglio usare quel modello per sostituire con. Quindi, inizio a digitare :% s/ e non riesco a ricordare quale fosse lo schema. C'è qualche comando di tastiera magico che inserirà il mio ultimo modello di ricerca qui? Se sto scrivendo un'espressione regolare particolarmente complessa, ho persino aperto una nuova finestra di MacVim, ho inserito la regex dalla prima finestra in un buffer, quindi l'ho reinserita nella finestra di Vim durante la scrittura del pattern di sostituzione. Deve esserci un modo migliore per farlo.

risposta

10

Trovato la mia risposta dopo aver scritto la domanda: Vim suggerimenti lo elenca come substitute last search e può essere fatto in uno dei due modi.

  1. Utilizzando una ricerca vuota:

    :% s // sostituire/g

  2. Premendo Ctrl +r poi / per richiamare il materiale dal buffer di ricerca (/ - è possibile utilizzare qualsiasi altro buffer denominato sostituendo lo / per la lettera che rappresenta quel bu ffer).

+2

Scusate per l'auto-risposta, gente. Ho avuto difficoltà a trovare effettivamente la risposta, quindi ho pensato che valesse la pena rimediare. E Meta dice che è giusto rispondere alle proprie domande - http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions –

+1

Se si finisce per dover utilizzare più di un regex arcano per setacciare la tua spazzatura eclettica, potrebbe essere utile mantenerli in variabili, usando ': let b: tires_sifter = @ /' per un tipo di spazzatura, e ': let b: pope_on_a_ropes_sifter = @ /' dopo di te ho capito come individuare le istanze di quell'entità che non si possono mai avere troppe. Tirali fuori assegnandoli a '@ /', costruendo una riga 'exec' per usarli, o usando la funzione' search() '(IIRC .. forse' matchadd'). – intuited

4

C'è un registro / che contiene il modello di ricerca in corso, in modo da poter inserire il modello di ricerca in qualunque cosa si sta digitando (sia in modalità inserimento o sulla riga di comando) con <CTRL-R>/

1

Un'altra opzione : dopo aver inserito il modello con <CTRL-R>/, modificare la riga di comando con <CTRL-F>.

: help cmdwin

Problemi correlati