Talvolta è preferibile iniziare ciascuna frase in un paragrafo su una riga separata. Ad esempio, questo semplifica la diffusione di documenti di grandi dimensioni, poiché una modifica di una frase non influisce sull'intero paragrafo. Alcuni sistemi di markup (ad es. * Roff) richiedono anche che ogni frase inizi su una nuova riga.C'è un modo per fermare il punto di riempimento alla fine di una frase?
C'è un modo, ad es. con una ragionevole ridefinizione di paragraph-separate
e paragraph-start
, per rendere lo stop fill-paragraph
tra una frase e l'altra?
(nota: io uso Emacs 23.3.1)
Aggiornamento: campione mdoc (* roff) markup:
The
.Nm
utility makes a series of passes with increasing block sizes.
In each pass, it either reads or writes (or both) a number of
non-consecutive blocks at increasing offsets relative to the ideal
alignment, which is assumed to be multiples of the block size.
The results are presented in terms of time elapsed, transactions per
second and kB per second.
Questo è un singolo paragrafo con tre frasi, ognuna delle quali inizia su una linea separata anche se c'è spazio per la prima parola (s) sulla riga precedente. Attualmente, fill-paragraph
sarà trasformare questo in
The
.Nm
utility makes a series of passes with increasing block sizes. In each
pass, it either reads or writes (or both) a number of non-consecutive
blocks at increasing offsets relative to the ideal alignment, which is
assumed to be multiples of the block size. The results are presented
in terms of time elapsed, transactions per second and kB per second.
che è quello che voglio evitare.
Aggiornamento: nelle frasi re e paragrafi
vedo che la mia domanda è un po 'poco chiaro, perché ho usato il termine "paragrafo" per fare riferimento sia a quello che Emacs chiama un paragrafo e per ciò che finisce come un blocco di testo continuo nell'output di qualsiasi processore che utilizzo (groff, latex ecc.). Per chiarire,
- Ho bisogno di tenere insieme le frasi senza righe vuote tra loro; groff non ama le righe vuote, mentre il latex le vede come separatori di paragrafi.
- Ho bisogno di
fill-paragraph
per operare su singole frasi, cioè voglio ridefinire un paragrafo come qualcosa che inizia dopo una riga vuota o la fine del paragrafo precedente e termina con un periodo seguito da un carattere di nuova riga o almeno due caratteri bianchi. - Mi piacerebbe avere
fill-paragraph
spezzare un blocco di testo in singole frasi, ma non penso che possa essere fatto facilmente.
Ad esempio, se di tipo seguente:
The
.Nm
utility makes a series of passes with increasing block sizes.
In each pass, it either reads or writes (or both) a number of non-consecutive blocks at increasing offsets relative to the ideal alignment, which is assumed to be multiples of the block size.
The results are presented in terms of time elapsed, transactions per second and kB per second.
quindi spostare il punto alla linea che inizia con "In ogni passaggio" e premere M-q
, devo ottenere i seguenti:
The
.Nm
utility makes a series of passes with increasing block sizes.
In each pass, it either reads or writes (or both) a number of
non-consecutive blocks at increasing offsets relative to the ideal
alignment, which is assumed to be multiples of the block size.
The results are presented in terms of time elapsed, transactions per second and kB per second.
Si noti che l'ultima frase non è stata toccata.
Hmm, se la sintassi regexp di Emacs supporta asserzioni look-behind a lunghezza variabile di larghezza zero, dovrebbe essere possibile costruire un'espressione regolare che corrisponda al Perl re '/\.(?:\n|\s{2, }) \ K \ S/s', che corrisponde al primo carattere non di spaziatura dopo un periodo seguito da un carattere di fine riga o almeno da due caratteri di spaziatura. – DES
Mi hai perso. Quando fallisce il regexp che ho postato? Suppongo che tu colpisca manualmente il ritorno dopo ogni frase mentre li inserisci, in modo che Emacs non debba dividere i paragrafi per te, deve solo rispettare i limiti della frase durante il riempimento. – Tyler
Non credo Emacs supporta affermazioni, sia. – Tyler