¿Alguna diferencia de funcionalidad usando una convención de dos espacios versus un espacio al final de una oración?

9

Q: ¿Qué razones prácticas están ahí no para conjunto sentence-end-double-spacede nil?

Un hilo recientemente revivido sobre el reconocimiento de oraciones que no terminan en dos espacios inspiró esta pregunta.

El nodo manual de Emacs en las oraciones señala que los comandos de oración suponen que usamos la convención del mecanógrafo estadounidense de poner dos espacios al final de una oración (en oposición a, por ejemplo, la convención francesa de un espacio). Los argumentos a favor / en contra de la convención de dos espacios aparentemente se vuelven bastante polémicos (por ejemplo, esta pieza de pizarra ).

No me importa particularmente el aspecto en la medida en que dejo que LaTeX se encargue de mi configuración de tipografía, pero la convención de dos espacios se convierte en memoria muscular. Sin embargo, cuando pego texto en un búfer de Emacs desde otras fuentes (páginas web, etc.), casi siempre está en la convención de un espacio. Que es un poco molesto en un cómo-se atreven-que-difieren-de-me especie de camino, y estoy tentado de conjunto sentence-end-double-spacepara nillidiar con la realidad. Sin embargo, nunca lo he hecho, porque siempre he asumido que algo se romperá si lo hago. Simplemente no tengo ninguna base firme para esa suposición.

Por lo tanto: ¿hay consecuencias prácticas en términos de pérdida de funcionalidad para configurar sentence-end-double-spacea nil? El único cambio significativo que se me ocurre es que las funciones de relleno cambiarán la convención de dos espacios en la convención de un espacio.

Dan
fuente
1
Me encanta esta pregunta, entiendo completamente lo que sientes ...
mbork
Incluso el artículo de Slate que usted cita argumenta que en el tipo monoespaciado, una convención de doble espacio puede ayudar a identificar el final de las oraciones.
alexurba

Respuestas:

9

La única consecuencia que veo es la capacidad de reconocer períodos de abreviaturas.

Como lo afirma gnu.org :

Si desea usar solo un espacio entre oraciones, puede establecer la variable sentence-end-double-spaceen nil para que los comandos de la oración se detengan para espacios individuales. Sin embargo, esto tiene un inconveniente: no hay forma de distinguir entre los períodos que terminan las oraciones y los que indican abreviaturas .

Para una edición conveniente y confiable, le recomendamos que siga la convención de dos espacios. La variable sentence-end-double-spacetambién afecta el llenado .

Creo que nunca he usado la convención de dos espacios, depende de cómo / qué esté editando.

Nsukami _
fuente
3

Esto no es realmente una respuesta a la pregunta como se ha dicho ( "¿Qué pierdo si me puse sentence-end-double-spacea nil"), sino más bien algo así como la tercera vía ;-). (Además, es una copia (parcial) de una publicación que acabo de escribir en mi blog ; si esto es inapropiado, alguien borre esto, pero espero que esto pueda ser útil).

Entonces, básicamente, ¿por qué quieres perder algo al poner algo en contra de tu gusto? ¡Esto es Emacs, después de todo!

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

Ahora, cuando abre un archivo, Emacs decide (usando el valor muy conservador de sentence-end-double-space-threshold, que puede setqhacer lo que le parezca correcto) de qué estilo es. (Obviamente, esto no ayuda en caso de pegar desde el navegador o lo que sea. Se podría hacer, aconsejando yanky, si es necesario, reemplazando espacios en el texto extraído según sea necesario, pero bueno, ¡solo tenía 15 minutos para eso!)

PD. Por supuesto, no tiene en cuenta los períodos en EOL, etc .; pero de nuevo, el umbral es muy bajo.

mbork
fuente