Beri tahu tanda hubung (-), tanda hubung (-) dan emdash (-)

16

Tanda hubung (-), tanda hubung (-) dan emdash (-) berbeda tetapi sulit untuk dibedakan. Ini menyebabkan masalah misalnya saat menulis program. Apakah ada cara untuk membedakan mereka lebih mudah dalam emacs? Terima kasih.

StackExchange untuk Semua
sumber
Bisakah Anda berbicara tentang kasus penggunaan tentang tanda hubung yang menyebabkan masalah saat menulis kode? Satu-satunya tanda hubung yang saya temui saat membaca dan menulis kode adalah tanda hubung biasa. Saya menggunakan n-dash dan m-dash hanya dalam dokumentasi mode org menggunakan --dan ---.
Kaushal Modi
Jadi masalahnya bukan pada kode di emacs tetapi dari sesuatu yang Anda salin dari halaman web. Kemungkinan orang yang menulis artikel itu melakukannya di org-modemana --akan merender sebagai n-dash kecuali jika dibungkus dengan kata demi kata atau pemformatan kode seperti =command --some-arg=.
Kaushal Modi
Saya percaya beberapa? semua? rasa penurunan harga juga mendukung apa yang jauh lebih lazim daripada mode org untuk menulis blog. Jadi itu adalah masalah yang sangat mungkin terjadi.
Kaushal Modi
1
Tentunya yang pertama adalah tanda hubung, bukan tanda hubung sama sekali.
TRiG

Jawaban:

10

Inilah sedikit kesenangan dengan wajah tersenyum Unicode. En-dash secara visual menjadi wajah tersenyum hitam. Em-dash secara visual menjadi wajah tersenyum putih. Catatan, beberapa versi Emacs mungkin tidak mendukung karakter Unicode wajah smiley - ini hanya dimaksudkan sebagai demonstrasi - karakter Unicode lainnya tentu saja dapat dipilih. Wajah lain dapat digunakan, dan pengguna bebas untuk menyusun wajahnya sendiri.

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

Berikut adalah contoh yang diperbarui yang secara efektif menggabungkan tanda hubung minus dan menambahkan warna - yaitu, 8211 secara visual menjadi --dengan font-lock-keyword-facewarna as; dan, yang 8212 secara visual menjadi ---dengan font-lock-function-name-facewarna sebagai.

(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]))
daftar hukum
sumber
Dapatkah en-dash diterjemahkan sebagai --dan em-dash ---dengan wajah yang berbeda seperti merah tebal sehingga pengguna tahu bahwa emacs telah memberikan yang berbeda?
Kaushal Modi
2
@kaushalmodi - Aku diperbaharui contoh untuk menyertakan 8211sebagai --dengan font-lock-keyword-face; dan 8212seperti ---dengan font-lock-function-name-face.
hukum
9

Mengutip dokumen:

C-x =menjalankan perintah what-cursor-position, yang merupakan fungsi Lisp interaktif yang dikompilasi di simple.el.

Pasti terikat C-x =.

(what-cursor-position &optional DETAIL)

Cetak info tentang posisi kursor (di layar dan di dalam buffer). Juga gambarkan karakter setelah titik, dan berikan kode karakternya dalam oktal, desimal dan hex.

Untuk karakter multibyte non-ASCII, berikan juga pengkodeannya dalam sistem pengkodean buffer yang dipilih jika sistem pengkodean mengkodekan karakter dengan aman. Jika karakter dikodekan ke dalam satu byte, kode itu ditampilkan dalam hex. Jika karakter dikodekan menjadi lebih dari satu byte, hanya "..." yang ditampilkan.

Selain itu, dengan argumen awalan, tampilkan detail tentang karakter itu di * Bantuan * buffer. Lihat juga perintah `jelaskan-char '.

Penekanan dan pemformatan milikku.

Coba ingat kode-kode ini:

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

Tetapi jika Anda melupakannya, Anda dapat melakukannya dengan mudah C-u C-x =, yang memunculkan buffer dengan info tambahan, termasuk name:bidang.

PythonNut
sumber
1
apa perbedaan antara tanda hubung, minus dan putus-putus dalam hal mesin terbang mereka?
StackExchange for All
HYPHEN-MINUSadalah nama Unicode kanonik untuk tanda hubung biasa, yang biasanya dapat Anda ketik dengan menekan tombol di sebelah kiri =tombol. Ini adalah tanda hubung "biasa" yang digunakan di mana saja dalam pemrograman.
PythonNut
kapan itu disebut tanda hubung dan kapan tanda hubung?
StackExchange for All
@Tim. Sejauh yang kami ketahui, keduanya adalah sinonim. Badan standar Unicode menyebutnya sebagai tanda hubung. Anda menyebutnya tanda hubung .... Anda berdua tidak salah.
PythonNut
4
@Tim. Dalam ortografi bahasa Inggris, tanda hubung menghubungkan berbagai hal. Ada tanda hubung dalam dua puluh tiga , misalnya. Pisahkan hal-hal yang terpisah. Saya tidak akan menyebut itu tanda hubung sama sekali.
TRiG
6

Gunakan perpustakaan highlight-chars.eluntuk menyorot karakter Unicode apa pun yang Anda inginkan. Lihat Karakter Sorotan pada Emacs Wiki.

Anda dapat menggunakan perintah hc-highlight-charsuntuk melakukan karakter highlight dalam empat cara:

  1. secara individual
  2. menggunakan rentang
  3. menggunakan kelas karakter (misalnya [:digit:])
  4. menggunakan set karakter (misalnya iso-8859-1atau lao)

hc-highlight-charsmeminta Anda untuk menyoroti karakter pada wajah tertentu dan wajah yang akan digunakan untuk mereka. (Dengan awalan arg itu tidak menyoroti.)

Saat Anda diminta untuk menyorot karakter, Anda dapat menggunakan C-x 8 RETuntuk memilih karakter Unicode menggunakan penyelesaian.

Drew
sumber