Dividi a parte un trattino (-), un trattino (-) e un trattino (-)


16

Un trattino (-), un trattino (-) e un trattino (-) sono diversi ma difficili da distinguere. Ciò causa problemi, ad esempio durante la scrittura di programmi. C'è un modo per distinguerli più facilmente in emacs? Grazie.


Puoi parlare di un caso d'uso di quei trattini che causano problemi durante la scrittura del codice? L'unico trattino che ho riscontrato durante la lettura e la scrittura del codice è il trattino normale. Uso n-dash e m-dash solo nella documentazione in modalità org usando --e ---.
Kaushal Modi,


Quindi il problema non riguarda il codice in emacs ma da qualcosa che hai copiato da una pagina web. È probabile che la persona che ha scritto quell'articolo lo abbia fatto org-modedove --verrà visualizzato come n-dash a meno che non sia racchiuso in una formattazione testuale o di codice simile =command --some-arg=.
Kaushal Modi,

Ci credo? tutti? sapori di markdown supportano anche ciò che è molto più diffuso della modalità org per la scrittura di blog. Quindi questo è un problema molto probabile.
Kaushal Modi,

1
Sicuramente quello primo è un trattino, non un trattino.
TRiG,

Risposte:


10

Ecco un po 'di divertimento con le faccine Unicode. Il trattino diventa visivamente una faccina nera. Il trattino diventa visivamente una faccina bianca. Nota, alcune versioni di Emacs potrebbero non supportare i caratteri Unicode della faccina - si tratta solo di una dimostrazione - altri personaggi Unicode possono ovviamente essere scelti. È possibile utilizzare altri volti e l'utente è libero di comporre i propri volti.

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

Ecco un esempio aggiornato che concatena efficacemente il trattino-meno e aggiunge colore - cioè, diventa 8211 visivamente-- con la font-lock-keyword-facecolorazione; e, 8212 visivamente diventa ---con la font-lock-function-name-facecolorazione.

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

È possibile eseguire il rendering di en-dash come --ed em-dash come ---con una faccia distinta come il rosso grassetto in modo che l'utente sappia che emacs li ha resi in modo diverso?
Kaushal Modi,

2
@kaushalmodi - Ho aggiornato l'esempio per includerlo 8211come --con il font-lock-keyword-face; e il 8212come ---con il font-lock-function-name-face.
elenco delle leggi

9

Per citare i documenti:

C-x =esegue il comando what-cursor-position, che è una funzione Lisp compilata interattiva in simple.el.

È legato a C-x =.

(what-cursor-position &optional DETAIL)

Stampa le informazioni sulla posizione del cursore (sullo schermo e all'interno del buffer). Descrivi anche il carattere dopo punto e fornisci il suo codice carattere in ottale, decimale ed esadecimale.

Per un carattere multibyte non ASCII, fornire anche la sua codifica nel sistema di codifica selezionato del buffer se il sistema di codifica codifica il carattere in modo sicuro. Se il carattere è codificato in un byte, quel codice viene mostrato in esadecimale. Se il carattere è codificato in più di un byte, viene visualizzato solo "...".

Inoltre, con l'argomento prefisso, mostra i dettagli di quel carattere nel buffer * Help *. Vedi anche il comando `descrivi-char '.

Enfasi e formattazione della mia.

Prova a ricordare questi codici:

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

Ma se li dimentichi, puoi facilmente farlo C-u C-x =, che apre un buffer con informazioni aggiuntive, incluso un name:campo.


1
qual è la differenza tra trattino, meno e trattino in termini di glifi?
StackExchange per tutto il

HYPHEN-MINUSè il nome canonico Unicode per il trattino semplice, che di solito è possibile digitare premendo il tasto a sinistra del =tasto. È il trattino "normale" utilizzato ovunque nella programmazione.
PythonNut,

quando si chiama trattino e quando un trattino?
StackExchange per tutto il

@Tim Per quanto ci riguarda, sono sinonimi. Il corpo degli standard Unicode lo definisce un trattino. Lo chiami un trattino .... nessuno di voi ha torto.
PythonNut,

4
@ Tim. Nell'ortografia inglese, i trattini collegano le cose. C'è un trattino in ventitre , per esempio. I trattini separano le cose. Non lo definirei affatto un trattino.
TRiG,

6

Usa la libreria highlight-chars.elper evidenziare tutti i caratteri Unicode che desideri. Vedi i personaggi in evidenza su Emacs Wiki.

Puoi usare il comando hc-highlight-charsper evidenziare i caratteri in quattro modi:

  1. individualmente
  2. utilizzando intervalli
  3. utilizzando classi di caratteri (ad es. [:digit:])
  4. utilizzando set di caratteri (ad es. iso-8859-1o lao)

hc-highlight-charsti chiede di evidenziare i personaggi in una faccia particolare e la faccia da usare per loro. (Con un prefisso arg non si evidenzia.)

Quando viene richiesto di evidenziare i caratteri, è possibile utilizzare C-x 8 RETper scegliere i caratteri Unicode dopo il completamento.

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.