Rozróżnij myślnik (-), myślnik (-) i emdash (-)

16

Myślnik (-), myślnik (-) i emdash (-) są różne, ale trudne do odróżnienia. Powoduje to problemy np. Podczas pisania programów. Czy jest jakiś sposób na łatwiejsze ich rozróżnienie w emacs? Dzięki.

StackExchange dla wszystkich
źródło
Czy możesz opowiedzieć o przypadku użycia myślników powodujących problemy podczas pisania kodu? Jedyną kreską, na którą natrafiłem podczas czytania i pisania kodu, jest zwykła kreska. Używam n-dash i m-dash tylko w dokumentacji trybu org przy użyciu --i ---.
Kaushal Modi
unix.stackexchange.com/questions/187010/…
StackExchange dla wszystkich
Problemem nie jest więc kod w emacsie, ale coś, co skopiowałeś ze strony internetowej. Jest prawdopodobne, że osoba, która napisała ten artykuł, zrobiła to w org-modemiejscu, w którym --będzie renderowana jako n-myślnik, chyba że jest zapakowana dosłownie lub w formacie podobnym do kodu =command --some-arg=.
Kaushal Modi
Wierzę niektórym? wszystko? Smaki Markdown obsługują również to, co jest znacznie bardziej rozpowszechnione niż tryb org do pisania blogów. To bardzo prawdopodobny problem.
Kaushal Modi
1
Z pewnością ten pierwszy to łącznik, a nie kreska.
TRiG

Odpowiedzi:

10

Oto trochę zabawy z buźkami Unicode. En-dash wizualnie staje się czarną buźką. Em-dash wizualnie staje się białą buźką. Uwaga: niektóre wersje Emacsa mogą nie obsługiwać znaków Unicode z uśmiechniętą twarzą - ma to jedynie charakter demonstracyjny - można oczywiście wybrać inne znaki Unicode. Można użyć innych twarzy, a użytkownik może dowolnie komponować własne twarze.

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

Oto zaktualizowany przykład, który skutecznie łączy myślnik-minus i dodaje kolor - tzn. 8211 Wizualnie staje się --z font-lock-keyword-facekolorem; i 8212 wizualnie staje się ---z font-lock-function-name-facepodbarwieniem.

(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 prawnicza
źródło
Czy en-dash może być renderowany jako --em-dash jak ---z wyraźną twarzą, taką jak pogrubiona czerwień, aby użytkownik wiedział, że emacs renderował je inaczej?
Kaushal Modi
2
@kaushalmodi - zaktualizowałem przykład, aby uwzględnić 8211jak --w font-lock-keyword-face; i 8212jak ---w przypadku font-lock-function-name-face.
prawnik
9

Aby zacytować dokumenty:

C-x =uruchamia polecenie what-cursor-position, które jest interaktywną skompilowaną funkcją Lisp w simple.el.

Jest to związane z C-x =.

(what-cursor-position &optional DETAIL)

Wydrukuj informacje o pozycji kursora (na ekranie i w buforze). Opisz także znak po punkcie i podaj jego kod w postaci ósemkowej, dziesiętnej i szesnastkowej.

W przypadku znaku wielobajtowego innego niż ASCII, należy również podać jego kodowanie w wybranym systemie kodowania bufora, jeśli system kodowania bezpiecznie koduje znak. Jeśli znak jest zakodowany w jednym bajcie, kod ten jest wyświetlany w postaci szesnastkowej. Jeśli znak jest zakodowany w więcej niż jednym bajcie, wyświetlane jest tylko „...”.

Ponadto, z argumentem przedrostka, pokaż szczegóły dotyczące tego znaku w buforze * Pomoc *. Zobacz także polecenie „opisz-char”.

Nacisk i formatowanie mój.

Spróbuj zapamiętać te kody:

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

Ale jeśli je zapomnisz, możesz to łatwo zrobić C-u C-x =, co powoduje wyświetlenie bufora z dodatkowymi informacjami, w tym name:polem.

PythonNut
źródło
1
jaka jest różnica między łącznikiem, minusem i myślnikiem pod względem ich glifów?
StackExchange dla wszystkich
HYPHEN-MINUSto kanoniczna nazwa Unicode zwykłego myślnika, którą zwykle można wpisać, naciskając klawisz po lewej stronie =klawisza. Jest to „zwykła” kreska używana wszędzie w programowaniu.
PythonNut
kiedy nazywa się myślnik, a kiedy myślnik?
StackExchange dla wszystkich
@ Tim Według nas są to synonimy. Treść standardu Unicode nazywa to łącznikiem. Nazywasz to myślnikiem ... żadne z was się nie myli.
PythonNut
4
@Tim. W angielskiej ortografii łączniki łączą różne rzeczy. Na przykład jest dwadzieścia trzy myślniki . Kreski oddzielają rzeczy. W ogóle nie nazwałbym tego kreską.
TRiG
6

Użyj biblioteki, highlight-chars.elaby podświetlić dowolne znaki Unicode. Zobacz Wyróżnianie postaci na Wiki Emacs.

Możesz użyć polecenia, hc-highlight-charsaby wyróżnić znaki na cztery sposoby:

  1. indywidualnie
  2. za pomocą zakresów
  3. za pomocą klas znaków (np. [:digit:])
  4. za pomocą zestawów znaków (np. iso-8859-1lub lao)

hc-highlight-charswyświetla monit o wyróżnienie postaci (postaci) na konkretnej twarzy oraz twarzy, która ma być dla nich użyta. (Z prefiksem arg odznacza.)

Po pojawieniu się monitu o wyróżnienie znaku (ów), możesz użyć C-x 8 RETznaków Unicode po zakończeniu.

Rysował
źródło