Qualche differenza di funzionalità usando una convenzione a due spazi contro uno spazio alla fine di una frase?


9

D: Quali motivi pratici non ci sono , non per set sentence-end-double-spacea nil?

Un thread recentemente ripreso sul riconoscimento di frasi che non finiscono in due spazi ha ispirato questa domanda.

Il nodo manuale di Emacs sulle frasi osserva che i comandi di frase presuppongono che usiamo la convenzione della dattilografa americana di mettere due spazi alla fine di una frase (al contrario, diciamo, della convenzione francese di uno spazio). Gli argomenti a favore / contro la convenzione dei due spazi sembrano apparentemente piuttosto polemici (ad esempio, questo pezzo di ardesia ).

Non mi interessa in particolare l'aspetto nella misura in cui lascio che LaTeX gestisca la mia impostazione del tipo, ma la convenzione dei due spazi è martellata nella memoria muscolare. Tuttavia, quando incollo il testo in un buffer Emacs da altre fonti (pagine Web, ecc.), È quasi sempre nella convenzione di uno spazio. Questo è un po 'fastidioso in un how-dare-che-differiscono-da-me sorta di passaggio, e sono tentato di serie sentence-end-double-spacea nildi affrontare la realtà. Non l'ho mai fatto, però, perché ho sempre pensato che qualcosa si spezzerebbe. Non ho alcuna base solida per tale presupposto.

Quindi: ci sono delle conseguenze pratiche in termini di perdita di funzionalità per l'impostazione sentence-end-double-spacea nil? L'unico cambiamento significativo a cui riesco a pensare è che le funzioni di riempimento cambieranno la convenzione a due spazi in quella a uno spazio.


2
Adoro questa domanda, capisco perfettamente cosa provi ...
mbork,

Anche l'articolo Slate che citi sostiene che nel tipo monospace una convenzione a doppio spazio può aiutare a identificare la fine delle frasi.
alexurba,

Risposte:


9

L'unica conseguenza che sto vedendo è la capacità di riconoscere i periodi dalle abbreviazioni.

Come affermato da gnu.org :

Se si desidera utilizzare solo uno spazio tra le frasi, è possibile impostare la variabile sentence-end-double-spacesu zero per arrestare i comandi di frase per singoli spazi. Tuttavia, questo ha uno svantaggio: non c'è modo di distinguere tra i periodi che terminano le frasi e quelli che indicano le abbreviazioni .

Per un editing comodo e affidabile, ti consigliamo quindi di seguire la convenzione dei due spazi. La variabile sentence-end-double-spaceinfluenza anche il riempimento .

Non ho mai usato la convenzione dei due spazi, penso, dipende da come / cosa stai modificando.


3

Questa non è in realtà una risposta alla domanda come indicato ("cosa perdo se mi metto sentence-end-double-spacesu nil"), ma piuttosto qualcosa come il terzo modo ;-). (Inoltre, è una copia (parziale) di un post che ho appena scritto sul mio blog ; se questo è inappropriato, qualcuno per favore cancellalo, ma spero che questo possa essere utile.)

Quindi, in sostanza, perché vuoi perdere qualcosa mettendo qualcosa contro i tuoi gusti? Questo è Emacs, dopo tutto!

(defvar sentence-end-double-space-threshold 2
  "How many occurrences of \".  \" per kilobyte should be enough
  to declare this file as using two spaces after sentences.")

(defun set-sentence-end-double-space ()
  "Set `sentence-end-double-space' according to how often the
  literal string \".  \" occurs in the current buffer."
  (make-local-variable 'sentence-end-double-space)
  (if (>= (* (count-matches "\\.  ") 1024)
      (* (buffer-size) sentence-end-double-space-threshold))
      (setq sentence-end-double-space t)
    (setq sentence-end-double-space nil)))

(add-hook 'find-file-hook 'set-sentence-end-double-space)     

Ora quando apri un file, Emacs decide (usando il valore molto conservativo di sentence-end-double-space-threshold, di cui puoi fare setqciò che ritieni giusto) di quale stile sia. (Ovviamente, questo non aiuta in caso di incollare dal browser o altro. Potrebbe essere fatto, avvisando yanke - se necessario - sostituendo gli spazi nel testo strappato come necessario, ma ehi, ho avuto solo 15 minuti per quello!)

PS. Ovviamente, non tiene conto dei periodi alle EOL, ecc .; ma ancora una volta, la soglia è molto bassa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.