2012-03-17 8 views
7

voglio ordinare i paragrafi nel mio testo secondo le loro iniziali con il seguente comando globale:multipli comandi globali in Vim dà errore: Non può fare: ricorsiva globale

g/_p/,/^$/mo$ 

Questo funziona da solo. Ma quando io uso diversi comandi globali in una sola volta, poi si verifica un errore:

g/_p/,/^$/mo$|g/_w/,/^$/mo$ 

Questo dà il seguente errore:

Cannot do :global recursive 

Come posso eseguire questi comandi in sequenza in una sola volta?

risposta

7
:exe 'g/_p/,/^$/mo$' | g/_w/,/^$/mo$ 

Vedi :help:bar

+1

In questo caso non è necessario per avvolgere sia ': global' comandi in': execute', è sufficiente avvolgere solo il primo: ': exe'g/_p /,/^ $/mo $' | g/con MOLLA /,/^ $/mo $ '. –

+0

@ib .: Ho incorporato il suo suggerimento. Bello, grazie! Mi piace soprattutto il fatto, che anche salvato lo spazio tra ': exe' e il suo parametro' '... '. xD –

0

Here sono poche righe di vimscript questo genere tutti i paragrafi. Ma riconoscono i punti di impronta, non righe vuote. Ma sicuramente si potrebbe adattarlo distinguere paragrafi da linee vuote.