ダッシュ(-)、エンダッシュ(–)、およびエムダッシュ(—)を区別する


16

ダッシュ(-)、エンダッシュ(–)、およびエムダッシュ(—)は異なりますが、区別するのは困難です。これにより、プログラムの作成などで問題が発生します。emacsでそれらを簡単に区別する方法はありますか?ありがとう。


コードを書くときに問題を引き起こすダッシュについてのユースケースについて話してもらえますか?コードの読み書き中に出会った唯一のダッシュは、通常のダッシュです。とを使用して、組織モードのドキュメントでのみn-dashとm-dashを使用-----ます。
カウシャルモディ


したがって、問題はemacsのコードではなく、Webページからコピーしたものにあります。その記事を書いた人は、それを逐語的またはのようなコードフォーマットでラップされない限り、n-dashとしてレンダリングするorg-mode場所でそうする可能性が高いです。--=command --some-arg=
カウシャルモディ

信じる?すべて?マークダウンのフレーバーは、ブログを書くための組織モードよりはるかに普及しているものもサポートしています。それは非常にありそうな問題です。
カウシャルモディ

1
確かに最初の文字はハイフンであり、ダッシュではありません。
-TRiG

回答:


10

Unicodeのスマイリーフェイスを少しお楽しみください。エンダッシュは視覚的に黒いスマイリーの顔になります。em-dashは視覚的に白い笑顔になります。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]))

en-dashをとして--、em-dashを---太字の赤のような明確な顔のようにレンダリングして、emacsがそれらを異なってレンダリングしたことをユーザーに認識させることはできますか?
カウシャルモディ

2
@kaushalmodi-のように含める8211ように例を更新--しましたfont-lock-keyword-face; そして、8212など---font-lock-function-name-face
法律家

9

ドキュメントを引用するには:

C-x =コマンドを実行what-cursor-positionsimple.elます。これは、。

にバインドされていC-x =ます。

(what-cursor-position &optional DETAIL)

カーソル位置の情報を印刷します(画面上およびバッファ内)。また、ポイントの後の文字を記述し、その文字コードを8進数、10進数、16進数で指定します。

非ASCIIマルチバイト文字の場合、コーディングシステムが文字を安全にエンコードする場合は、バッファの選択されたコーディングシステムでエンコードを行います。文字が1バイトにエンコードされている場合、そのコードは16進数で表示されます。文字が複数バイトにエンコードされている場合、「...」だけが表示されます。

さらに、プレフィックス引数を使用して、その文字に関する詳細を* Help *バッファーに表示します。 コマンド `describe-char 'も参照してください。

私の強調とフォーマット。

これらのコードを覚えてみてください:

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

しかし、それらを忘れた場合C-u C-x =name:フィールドを含む追加情報を含むバッファをポップアップする簡単な操作を実行できます。


1
グリフに関して、ハイフン、マイナス、ダッシュの違いは何ですか?
ティム

HYPHEN-MINUSは、通常のダッシュの正規のUnicode名で、通常はキーの左側の=キーを押すことで入力できます。これは、プログラミングのあらゆる場所で使用される「通常の」ダッシュです。
PythonNut

いつダッシュと呼ばれ、いつハイフンと呼ばれますか?
ティム

@Tim私たちに関する限り、それらは同義語です。Unicode標準化団体では、これをハイフンと呼んでいます。あなたはそれをダッシュ​​と呼びます...あなたのどちらも間違っていません。
PythonNut

4
@ティム。英語の正書法では、ハイフンが物事をつなぎます。たとえば、23にはハイフンがあります。ダッシュは物事を分けます。私はそれをまったくダッシュとは呼びません。
-TRiG

6

ライブラリhighlight-chars.elを使用して、とにかくUnicode文字を強調表示します。Emacs Wikiのハイライト文字を参照してください。

コマンドhc-highlight-charsを使用して、次の4つの方法で文字を強調表示できます。

  1. 個別に
  2. 範囲を使用する
  3. 文字クラスの使用(例[:digit:]
  4. 文字セットを使用する(例iso-8859-1またはlao

hc-highlight-chars特定の顔とそれらに使用する顔を強調表示する文字を入力するように求められます。(接頭辞argを使用すると、強調表示が解除されます。)

強調表示C-x 8 RETする文字の入力を求められたら、補完を使用してUnicode文字を選択するために使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.