Gibt es Funktionsunterschiede bei der Verwendung einer Zwei-Leerzeichen-Konvention gegenüber einer Ein-Leerzeichen-Konvention am Ende eines Satzes?

9

F: Welche praktischen Gründe gibt es nicht zu Satz sentence-end-double-spacezu nil?

Ein kürzlich wiederbelebter Thread zum Erkennen von Sätzen, die nicht in zwei Leerzeichen enden, inspirierte diese Frage.

Der manuelle Emacs-Knoten für Sätze stellt fest, dass die Satzbefehle davon ausgehen, dass wir die Konvention der amerikanischen Schreibkraft verwenden, zwei Leerzeichen am Ende eines Satzes zu setzen (im Gegensatz beispielsweise zur französischen Konvention eines Leerzeichens). Argumente für / gegen die Zwei-Raum-Konvention werden anscheinend ziemlich polemisch (z. B. dieses Slate-Stück ).

Das Aussehen ist mir insofern nicht besonders wichtig, als ich LaTeX meine Schriftsetzung übernehmen lasse, aber die Zwei-Raum-Konvention wirkt sich auf das Muskelgedächtnis aus. Wenn ich jedoch Text aus anderen Quellen (Webseiten usw.) in einen Emacs-Puffer einfüge, erfolgt dies fast immer in der Ein-Raum-Konvention. Dass in einer Art ärgerlich ist , wie-wagen-sie-unterscheiden-von-ich Art und Weise, und ich bin zu Satz versucht sentence-end-double-spacezu nilmit der Realität fertig zu werden . Ich habe es jedoch nie getan, weil ich immer angenommen habe, dass etwas kaputt geht, wenn ich es tue. Ich habe einfach keine feste Grundlage für diese Annahme.

Also: Gibt es praktische Konsequenzen in Bezug auf den Verlust der Funktionalität für die Einstellung sentence-end-double-spaceauf nil? Die einzige signifikante Änderung, die ich mir vorstellen kann, ist, dass die Füllfunktionen die Zwei-Raum-Konvention in die Ein-Raum-Konvention ändern.

Dan
quelle
1
Ich liebe diese Frage, ich verstehe vollkommen, was du fühlst ...
mbork
Sogar der von Ihnen zitierte Slate-Artikel argumentiert, dass eine Doppelraumkonvention bei monospaced Typ helfen kann, das Ende von Sätzen zu identifizieren.
Alexurba

Antworten:

9

Die einzige Konsequenz, die ich sehe, ist die Fähigkeit, Punkte aus Abkürzungen zu erkennen.

Wie von gnu.org angegeben :

Wenn Sie nur ein Leerzeichen zwischen Sätzen verwenden möchten, können Sie die Variable sentence-end-double-spaceauf Null setzen, damit die Satzbefehle für einzelne Leerzeichen angehalten werden. Dies hat jedoch einen Nachteil: Es gibt keine Möglichkeit, zwischen Perioden, die Sätze beenden, und solchen, die Abkürzungen angeben , zu unterscheiden .

Für eine bequeme und zuverlässige Bearbeitung empfehlen wir daher, die Zwei-Leerzeichen-Konvention zu befolgen. Die Variable sentence-end-double-spacewirkt sich auch auf das Füllen aus .

Ich habe die Zwei-Leerzeichen-Konvention noch nie verwendet, ich denke, es hängt davon ab, wie / was Sie bearbeiten.

Nsukami _
quelle
3

Dies ist nicht wirklich eine Antwort auf die Frage wie gesagt ("Was verliere ich, wenn ich mich sentence-end-double-spaceauf nil" stelle "), sondern eher so etwas wie der dritte Weg ;-). (Außerdem handelt es sich um eine (teilweise) Kopie eines Beitrags, den ich gerade in meinem Blog geschrieben habe . Wenn dies unangemessen ist, löscht jemand dies bitte, aber ich hoffe, dass dies hilfreich sein kann.)

Warum wollen Sie also etwas verlieren , indem Sie etwas gegen Ihren Geschmack einstellen? Das ist doch Emacs!

(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)     

Wenn Sie jetzt eine Datei öffnen, entscheidet Emacs (unter Verwendung des sehr konservativen Werts von sentence-end-double-space-threshold, den Sie setqnach Belieben verwenden können ), welchen Stil es hat. (Offensichtlich hilft dies nicht beim Einfügen aus dem Browser oder was auch immer. Es könnte getan werden, yankindem Leerzeichen im zerrissenen Text nach Bedarf empfohlen und - falls erforderlich - ersetzt werden, aber hey, ich hatte nur 15 Minuten dafür!)

PS. Natürlich werden Zeiträume bei EOLs usw.; aber auch hier ist die Schwelle sehr niedrig.

mbork
quelle