Separe un guión (-), un en-guión (-) y un emdash (-) aparte

16

Un guión (-), un en-guión (-) y un emdash (-) son diferentes pero difíciles de distinguir. Esto causa problemas, por ejemplo, al escribir programas. ¿Hay alguna manera de distinguirlos más fácilmente en emacs? Gracias.

StackExchange para todos
fuente
¿Puedes hablar sobre un caso de uso sobre esos guiones que causan problemas al escribir código? El único guión que he encontrado al leer y escribir código es el guión normal. Yo uso n-dash y m-dash solo en la documentación del modo org usando --y ---.
Kaushal Modi
Entonces, el problema no es con el código en emacs sino con algo que copió de una página web. Es probable que la persona que escribió ese artículo lo hiciera en org-modedonde --se representará como n-dash a menos que esté envuelto en forma textual o de código similar =command --some-arg=.
Kaushal Modi
Creo en algunos? ¿todos? Los sabores de Markdown también admiten lo que es mucho más frecuente que el modo org para escribir blogs. Entonces ese es un problema muy probable.
Kaushal Modi
1
Seguramente el primero es un guión, no un guión en absoluto.
TRiG

Respuestas:

10

Aquí hay un poco de diversión con caras sonrientes Unicode. El tablero se convierte visualmente en una carita sonriente negra. El tablero se convierte visualmente en una carita blanca y sonriente. Tenga en cuenta que algunas versiones de Emacs pueden no ser compatibles con los caracteres Unicode de cara sonriente; solo se trata de una demostración; por supuesto, se pueden elegir otros caracteres Unicode. Se pueden usar otras caras, y el usuario es libre de componer sus propias caras.

(let ((glyph-en-dash (make-glyph-code ?\u263A 'font-lock-keyword-face))
      (glyph-em-dash (make-glyph-code ?\u263B 'font-lock-function-name-face)) )
  (when (not buffer-display-table)
    (setq buffer-display-table (make-display-table)))
  (aset buffer-display-table 8211 `[,glyph-en-dash])
  (aset buffer-display-table 8212 `[,glyph-em-dash]))

Este es un ejemplo actualizado que concatena con eficacia el guión-menos y añade color - es decir, el 8211 visualmente se convierte --con el font-lock-keyword-facecomo coloración; y, 8212 visualmente se hace ---con la font-lock-function-name-facecoloración como.

(let ((glyph-en-dash (make-glyph-code ?\u002D 'font-lock-keyword-face))
      (glyph-em-dash (make-glyph-code ?\u002D 'font-lock-function-name-face)) )
  (when (not buffer-display-table)
    (setq buffer-display-table (make-display-table)))
  (aset buffer-display-table 8211 `[,glyph-en-dash ,glyph-en-dash])
  (aset buffer-display-table 8212 `[,glyph-em-dash ,glyph-em-dash ,glyph-em-dash]))
lista de leyes
fuente
¿Se puede representar el en-dash como --e-dash como ---con una cara distinta como el rojo en negrita para que el usuario sepa que emacs los ha representado de manera diferente?
Kaushal Modi
2
@kaushalmodi - Actualicé el ejemplo para incluir 8211como --con el font-lock-keyword-face; y el 8212como ---con el font-lock-function-name-face.
abogados
9

Para citar los documentos:

C-x =ejecuta el comando what-cursor-position, que es una función Lisp compilada interactiva en simple.el.

Está obligado a C-x =.

(what-cursor-position &optional DETAIL)

Imprima información sobre la posición del cursor (en la pantalla y dentro del búfer). Describa también el carácter después del punto y dé su código de carácter en octal, decimal y hexadecimal.

Para un carácter multibyte no ASCII, también dé su codificación en el sistema de codificación seleccionado del búfer si el sistema de codificación codifica el carácter de forma segura. Si el carácter está codificado en un byte, ese código se muestra en hexadecimal. Si el carácter está codificado en más de un byte, solo se muestra "...".

Además, con el argumento prefijo, muestre detalles sobre ese carácter en * Ayuda * buffer. Ver también el comando `describe-char '.

Énfasis y formateo del mío.

Intenta recordar estos códigos:

  • HYPHEN-MINUS 45
  • EN DASH 8211
  • EM DASH 8212

Pero si los olvida, puede hacerlo fácilmente C-u C-x =, lo que muestra un búfer con información adicional, incluido un name:campo.

PythonNut
fuente
1
¿Cuál es la diferencia entre guión, menos y guión en términos de sus glifos?
StackExchange para todos
HYPHEN-MINUSes el nombre canónico Unicode para el guión simple, que generalmente puede escribir presionando la tecla a la izquierda de la =tecla. Es el guión "normal" que se usa en todas partes en la programación.
PythonNut
¿Cuándo se llama guión y cuándo un guión?
StackExchange para todos
@Tim En lo que a nosotros respecta, son sinónimos. El organismo de estándares Unicode lo llama guión. Lo llamas un guión ... ninguno de ustedes está equivocado.
PythonNut
44
@Tim. En ortografía inglesa, los guiones conectan las cosas. Hay un guión en veintitrés , por ejemplo. Los guiones separan las cosas. No llamaría a eso una carrera en absoluto.
TRiG
6

Use la biblioteca highlight-chars.elpara resaltar los caracteres Unicode de la forma que desee. Ver Personajes destacados en Emacs Wiki.

Puede usar el comando hc-highlight-charspara resaltar caracteres de cuatro maneras:

  1. individualmente
  2. utilizando rangos
  3. usando clases de caracteres (por ejemplo [:digit:])
  4. utilizando conjuntos de caracteres (p. ej. iso-8859-1o lao)

hc-highlight-charsle solicita que resalte los caracteres en una cara en particular y la cara que usará para ellos. (Con un prefijo arg se resalta).

Cuando se le solicite que resalte los caracteres, puede usar C-x 8 RETpara elegir caracteres Unicode usando la finalización.

Dibujó
fuente