2009-02-12 15 views
7

Quando si modifica la prosa non WYSIWYG (LaTeX, HTML, ecc.) Probabilmente si desidera avere una nuova riga alla fine delle frasi. Questo ha diversi vantaggi:Showdown degli editor: mantieni newlines alle estremità delle frasi

  1. Più facile per riorganizzare le frasi.
  2. Più facile commentare le frasi.
  3. Più facile individuare frasi run-on/troppo lunghe.
  4. Più facile per commentare su frasi.

Ad esempio:

% The following isn't strictly true; maybe excise or comment out for now: 
After all, people who use Word or other WYSIWYG editors are aiding and 
abetting terrorists. 

e probabilmente il vantaggio più importante di tutte è che rende l'editing collaborativo sotto il controllo di versione molto più facile. Altrimenti si finisce con conflitti in cui si informa semplicemente "le seguenti due versioni di questo enorme paragrafo sono in conflitto".

Ma il mantenimento a capo alle estremità delle frasi è più facile a dirsi che a farsi ...

As you edit the prose 
it will get all chopped up, like this. 
Normally you'd do a "reformat paragraph" 
to clean it up, but then 
you lose the newlines at the ends of your sentences! 

La domanda chiede come risolvere questo problema in emacs:

How do I get Emacs to fill sentences, but not paragraphs?

I Mi piacerebbe sapere come le persone si occupano di questo in altri editor, inclusi vim, TeXShop, TextMate e tutti gli altri che ritieni siano utili da raccogliere qui. Anche i consigli su soft vs hard wrapping sono i benvenuti.

+0

Utilizzare un editor con la tecnologia soft-wrap? – garrow

risposta

3

Penserei che la soluzione più semplice a questo è di aggiungere solo una nuova riga dopo i punti fermi. Le tue modifiche non potrebbero quindi frammentare le linee.

Si noti che per la prosa si può benissimo fare affidamento su caratteristiche linea di confezionamento del vostro editor per avvolgere frasi lunghe - a meno che non si ostini a rientro esso come si farebbe con il codice (non rientrare che molto in lattice),

+0

Questo funzionerà sicuramente, ma inizialmente l'ho respinto (sempre pronto a esserne convinto) perché pone delle richieste alla scelta dei redattori dei miei collaboratori. – dmckee

+0

Seriamente: le persone usano editor che non possono avvolgere linee? – yungchin

+0

Le persone sicuramente usano editor che non sono _set_. YMMV e tutto il resto. – dmckee

1

Vim:

è possibile disattivare disposizione del testo (set formatoption-=t) e non sarà aggiungere interruzioni di linea a meno che non si colpisce entrare. Meglio ancora, se si riesce a capire come impostare l'opzione 'comments' in modo che riconosca i tuoi commenti, è possibile impostare la larghezza di auto-wrap solo per i vostri commenti e non per altri scopi:

set comments=b:% 
set textwidth=80 
set formatoption+=c 
set formatoption-=t 

Questa è la metodo che uso, in modo che i miei commenti siano ordinati, ma il mio codice non viene mutilato a meno che non lo faccia io stesso.

0

Questo sembra un modo piuttosto elaborato di aggirare una limitazione di diff. Perché non creare una diff sensibile alle frasi piuttosto che avvitare la tua fonte?

+0

Come saprebbe quando essere basato sulla linea e quando essere basato sulla frase? In ogni caso, penso che i motivi 1 a 4 siano abbastanza convincenti da non pensare che siano inventati. Penso che il più grande svantaggio sia che rende il tuo documento meno compatto. – dreeves

0

Mi piacerebbe sapere come le persone affrontano questo in altri editor,

FWIW sulla piattaforma Windows, l'editor Zeus ha una configurabile margine destro e dotato di un linea avvolgere la funzione.

Così, per esempio, con il margine destro impostato caratteri, segnando il testo del vostro esempio e quindi utilizzando le Macro, Linewrap Paragrafo menù, Zeus riformatta il testo come segue:

As you edit the proseit will get all chopped up, 
like this. Normally you'd do a "reformat 
paragraph"to clean it up, but thenyou lose the 
newlines at the ends of your sentences! 

L'involucro è rigido in quanto tutte le righe sopra hanno un carattere di fine riga inserito.

+0

È la nuova riga tra "... questo". e "Normalmente ..." che voglio preservare però. – dreeves

+0

Beh, immagino che una soluzione sarebbe quella di creare una macro che unisce tutte le linee dell'area contrassegnata in una riga e quindi fare in modo che la macro divida la linea sostituendo tutti i punti/esclamazioni con punto/esclamazione e nuova riga. Qualsiasi editor di script (incluso Zeus) dovrebbe essere in grado di farlo. – jussij

+0

Dovrebbe essere intelligente, dato che ci sono un sacco di periodi non-frase-termina e scoppi e così via. – dreeves

1

Un normale editor di testo non dovrebbe tentare di modificare il file che si scrive, a meno che non lo si chieda esplicitamente. Potrebbe cambiare l'aspetto del file sullo schermo per renderlo leggibile, ma il gioco è fatto.

Pertanto, gli editori più decenti nella mia esperienza eseguono involucri morbidi e mantengono la linea interrotta ovunque siano stati inseriti.

Questo è tutto. Devo confessare che non riesco a vedere di cosa si tratta, a meno che tu non stia usando degli editor di testo piuttosto bizzarri che insistono nel fare degli hard wraps e hanno bisogno di soluzioni alternative.

Se si desidera mantenere la formattazione utile per diff, è sufficiente eseguire le interruzioni di riga dopo ogni frase e accettare che diff funzionerà a livello di frase.

0

non si desidera il ritorno a capo alla fine delle frasi.

sicuro che è più facile fare le 4 cose che si elencano, ma non vale la pena farlo diversamente da come il resto del mondo lo fa (anche se le ragioni del mondo sono stupide come il ragionamento dietro CR LF = newline) .

e il vostro più grande vantaggio non è vero:

Altrimenti si finisce con conflitti dove solo voi "i seguenti due versioni di questo enorme paragrafo sono in conflitto" informa.

Come sapere quando essere basati su riga e quando essere basati su frasi?

è possibile utilizzare Meld o qualche strumento diff simile e lasciar fare il lavoro.

+0

Hai notato che sta parlando della modifica dell'origine di un documento LaTeX di situazioni simili, qui la forma del file di input ha un impatto limitato sulla forma dell'output formattato. E farlo in un ambiente collaborativo? Problema del caso speciale Saluti. – dmckee

+0

sì, anche in html/latex gli spazi vuoti e in alcuni casi hanno un significato. e ignorarli ovunque ti metteranno nei guai, specialmente se vuoi lavorare in modo collaborativo. – oberhamsi

1

In vim, è possibile compilare fino alla fine della frase corrente con gw). Non riformatterà un intero paragrafo o regione per te, ma se fai fai attenzione a inserire una nuova riga dopo ogni frase, e riformatti con gw) mentre scrivi, funziona piuttosto bene.

1

Qualunque cosa tu faccia, ti preghiamo di non utilizzare un editor che copra automaticamente l'intero documento se ti trovi in ​​un ambiente collaborativo.Gli amici non lasciano che gli amici usino WinEdt.

Problemi correlati