2016-02-20 16 views
5

C'è un modo per ottenere dati con parentesi graffe, prima di un determinato comando in lattice (\ body) e assegnare quel contenuto (testo lungo) a una variabile.Come assegnare il testo tra parentesi nella variabile in vim

esempio:

\ text {solo un testo prima che il corpo} \ body {contiene molti paragrafi, ecc etc etc, e che i paragrafi contiene anche molte comando lattice come \ textbf {il mio nome} e \ textit {text} ecc ma voglio tutto il contenuto con la parentesi graffa} \ text {solo un testo dopo che il corpo}

ho bisogno

\ body {contiene molti paragrafi ecc ecc ecc, e anche i paragrafi contengono molti comandi in lattice come \ textbf {nome mio} e \ textit {testo} ecc. Ma io voglio tutto il contenuto con la parentesi} in una variabile

Voglio cercare e sostituirlo. ecco perché

ho fatto una macro per strattonare il testo con le parentesi graffe con l'aiuto di% (per cercare tra parentesi graffe).

c'è un modo semplice per farlo?

grazie in anticipo

+1

Il testo di esempio è piuttosto poco chiaro. Il "ma voglio ..." parte del testo o parte della domanda? Utilizza la formattazione del codice anziché le virgolette per l'input di esempio, per favore. Anche il tuo output di esempio non ha la parte '\ text {..}', quindi vuoi copiare o eliminare? – muru

risposta

6

È possibile assegnare tutto all'interno della { per registrare a utilizzando

"ayi{ 

ripartizione è

"a - select register a 
y - yank 
i{ - everything inside {} 

Fa la cosa giusta per la corrispondenza parentesi graffe

Se in seguito hai bisogno di ac Cess il contenuto di un si può fare questo in diversi modi diversi a seconda del contesto - credo che le vie sono

"ap : paste register a in normal mode 
<C-r>a : paste register a into command line 
@a  : access register in script 

Vale la pena notare che la regex non è abbastanza potente per fare le parentesi corrispondenti. (Penso che ci siano estensioni che possono renderlo abbastanza potente, ma non sono sicuro che vim supporti nessuno di questi),

+0

funziona, quando posiziono il cursore nella posizione "{" in "\ body {". ho bisogno di uno script per woks il requisito anche il cursore è all'inizio del file. perché ho bisogno di aggiungere quello script nel mio vimscript (do, ciecamente) – Zam

+0

È sufficiente navigare nella parte superiore del file, quindi trovare la parte '\ body {' e posizionare il cursore il primo? - puoi farlo tramite 'gg/\\ body {/ e ', quindi l'intero lotto sarebbe 'gg/\\ body {/ e " ayi {'se ti serve anche il circostante' {'e il' \ body' sezione che potresti fare 'gg/\\ body {/ e va {oF \" ay' che espanderà la regione selezionata prima di strattonare. –

Problemi correlati