Повідомте тире (-), en-dash (-) та emdash (-) один від одного


16

Dash (-), en-dash (-) та emdash (-) різні, але їх важко розрізнити. Це спричиняє проблеми, наприклад, при написанні програм. Чи є якийсь спосіб простіше розказати їх у Emacs? Спасибі.


Чи можете ви говорити про випадок використання про ті тире, що спричиняють проблеми при написанні коду? Єдиний тире, на який я стикався під час читання та написання коду, - це звичайний тире. Я використовую n-dash і m-dash лише в документації в режимі org із використанням --і ---.
Каушал Моді


Тому проблема полягає не в коді в emacs, а в тому, що ви скопіювали з веб-сторінки. Цілком ймовірно, що людина, яка написала цю статтю, зробила це так, org-modeде вона --буде відображатися як n-тире, якщо вона не буде обгорнута у дослівному форматі чи форматуванні коду, як =command --some-arg=.
Каушал Моді

Я комусь вірю? все? аромати розмітки також підтримують те, що набагато більше поширене, ніж org режим для написання блогів. Тож це дуже ймовірне питання.
Каушал Моді

1
Безумовно, що перший - дефіс, а не тире.
TRiG

Відповіді:


10

Ось трохи веселощів з усміхненими обличчями Unicode. Ен-даш візуально стає чорним смайликом. Ем-даш візуально стає білим усміхненим обличчям. Зауважте, деякі версії Emacs можуть не підтримувати усміхнені персонажі Unicode - це призначено лише для демонстрації - інші символи Unicode, звичайно, можуть бути обрані. Можна використовувати й інші обличчя, і користувач може безкоштовно складати власні обличчя.

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

Ось оновлений приклад, який ефективно поєднує дефіс-мінус і додає кольору, тобто 8211 візуально стає --з font-lock-keyword-faceкольором; і, 8212 візуально стає ---з font-lock-function-name-faceтаким кольором.

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

Чи може анш-тире бути відображеним як --і em-dash, як ---з чітким обличчям, як жирне червоне, щоб користувач знав, що emacs виводив їх по-різному?
Каушал Моді

2
@kaushalmodi - я оновив приклад, щоб включити 8211як --до font-lock-keyword-face; і 8212як ---з font-lock-function-name-face.
законник

9

Щоб процитувати документи:

C-x =запускає команду what-cursor-position, яка є інтерактивно складеною функцією Lisp в simple.el.

Це обов'язково C-x =.

(what-cursor-position &optional DETAIL)

Роздрукувати інформацію про положення курсору (на екрані та в буфері). Опишіть також символ після точки і дайте його код символів у восьмеричному, десятковому та шістнадцятковому знаках.

Для мультибайтового символу, який не є ASCII, також введіть його кодування у вибрану буферну систему кодування, якщо система кодування кодує символ безпечно. Якщо символ закодований в один байт, цей код відображається у шістнадцятковій формі. Якщо символ закодований у більше, ніж один байт, відображається просто "...".

Крім того, за допомогою аргументу префіксу покажіть деталі про цей символ у буфері * Help *. Дивіться також команду `описуйте-char '.

Наголос і форматування шахти.

Спробуйте запам’ятати ці коди:

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

Але якщо ви забудете їх, ви можете легко зробити C-u C-x =, що спливає буфер із додатковою інформацією, включаючи name:поле.


1
яка різниця між дефісом, мінусом і тире з точки зору їхніх гліфів?
StackExchange для всіх

HYPHEN-MINUS- це канонічне ім'я Unicode для простого тире, яке зазвичай можна вводити, натискаючи клавішу ліворуч від =клавіші. Це "звичайний" тире, що використовується скрізь у програмуванні.
PythonNut

коли його називають тире і коли дефісом?
StackExchange для всіх

@Tim Що стосується нас, вони є синонімами. Орган зі стандартів Unicode називає це дефісом. Ви називаєте це тире .... ніхто з вас не помиляється.
PythonNut

4
@Tim. В англійській орфографії дефіси пов'язують речі. Наприклад, дефіс у двадцяти трьох , наприклад. Дефіси розділяють речі. Я б взагалі не називав це тире.
TRiG

6

Використовуйте бібліотеку, highlight-chars.elщоб виділити будь-які символи Unicode у будь-якому випадку. Дивіться виділення символів на Emacs Wiki.

Ви можете використовувати команду hc-highlight-charsдля виділення символів чотирма способами:

  1. індивідуально
  2. використовуючи діапазони
  3. використання класів символів (наприклад [:digit:])
  4. використання наборів символів (наприклад, iso-8859-1або lao)

hc-highlight-charsзапропонує вам персонажів (персонажів) виділити певне обличчя та використовувати для них обличчя. (З префіксом arg він не висвітлює.)

Коли вам буде запропоновано виділити символи (символи), ви можете C-x 8 RETвибрати символи Unicode, використовуючи завершення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.