2010-11-08 5 views
27

Ho due buffer suddivisi verticalmente in Vim che mostrano due file separati che voglio entrambi visualizzati e che scorrono sincronicamente. Con :set scrollbind nella parte superiore di entrambi i buffer, posso ottenere la parte di scorrimento verso il basso (così quando colpisco zt in un buffer, la riga corrente salta in alto in entrambi i buffer), ma sfortunatamente, il display non è sincronizzato.Come visualizzare e scorrere verticalmente i buffer divisi verticalmente in Vim?

Ciò significa che se le righe nei file hanno lunghezze diverse, i due buffer non saranno allineati visivamente. Vorrei che Vim visualizzasse interruzioni di riga aggiuntive per garantire che le lunghe linee avvolte non interferiscano con la visualizzazione sincronizzata verticalmente dei due buffer.

Grazie!

+0

hai intenzione di confrontarli? è meglio usare 'diff' per tale compito – Andrew

+0

@Andrew:' vimdiff', giusto? – Cascabel

+0

@Andrew: no, ho intenzione di modificarli. Testi in doppia lingua. –

risposta

1

È possibile utilizzare

:set nowrap 

Per interrompere le lunghe file di essere avvolto, in modo che i tamponi sono sincronizzati. Non esattamente quello che hai chiesto, ma vicino.

+0

Grazie. I file hanno linee lunghe (lo stesso libro in lingue diverse) quindi penso di doverlo avvolgere. –

12

Oltre a impostare scrollbind in entrambi i buffer, è necessario immettere il comando :syncbind. Questo dovrebbe sincronizzare lo scorrimento. Non so se lo farà perfettamente se avvolgi le linee e i due file hanno linee di diversa lunghezza. Ma se giri a capo penso che dovrebbe tenerli agli stessi numeri di linea.

+0

Grazie. Solitamente invoco 'scrollbind' su ciascun buffer manualmente, quindi mentre': syncbind' può salvarmi alcune sequenze di tasti lungo la strada, ho ancora il problema dell'allineamento in presenza di righe diseguali e lunghe. –

+4

Syncbind non è un'alternativa a scrollbind, cambia comportamento quando entrambe le finestre hanno scrollbind attivo. Ad esempio, se ho due finestre verticali aperte con lo stesso file, ma ho una finestra stretta in modo da avvolgere le linee, l'unico modo per ottenere linee sempre "allineate" è (penso) inviando syncbind. Le linee ovviamente non si allineano perfettamente (non potrebbero mai a meno che non vengano aggiunte righe vuote come in una vista diff), ma mentre scorro verso l'alto o il basso di una finestra le due _lines nella parte superiore della finestra corrispondono sempre perfettamente. Non so se questo è abbastanza per te, ma le righe in cima sono sempre uguali. –

0

Dubito che Vim sia davvero appropriato per i buffer di diff verticali che hanno righe di testo molto lunghe se è necessario avvolgerli, eppure, sono un vero appassionato di Vim.

Che cosa potrei suggerire a voi è:

  • con Vim, numeri di riga inserto di fronte a ogni riga, e fare doppio spazio i file (:g/^/put _). Se stai traducendo, i numeri di riga non dovrebbero essere realmente soggetti a modifiche?
  • Apri entrambi i file con Kompare o Meld che hanno trucchi grafici per unire senza difficoltà linee di lunghezza disuguale. Quindi adattare lo schema dei colori per comportarsi come se non fosse uno strumento diffingente.
Problemi correlati