区分一个破折号(-),一个破折号(–)和一个破折号(-)


16

破折号(-),破折号(-)和破折号(-)不同,但很难区分。这会导致问题,例如在编写程序时。有什么办法可以在emacs中更轻松地区分它们?谢谢。


您能谈谈有关编写代码时引起问题的破折号的用例吗?我在阅读和编写代码时遇到的唯一破折号是常规破折号。我仅在使用--和的组织模式文档中使用n-dash和m-dash ---
Kaushal Modi 2015年


因此,问题不在于emacs中的代码,而在于您从网页复制的内容。除非该文章使用逐字或代码格式包装,否则撰写该文章的人可能会在org-mode此处--将其显示为n-破折号=command --some-arg=
Kaushal Modi 2015年

我相信一些吗?所有?markdown的风味还支持比组织模式更普遍的博客编写功能。因此,这是一个非常可能的问题。
考沙尔·莫迪

1
当然,第一个字符是连字符,而不是连字符。
TRiG

Answers:


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

能否将破折号渲染为--和将破折号渲染为---带有粗体红色的不同面孔,以便用户知道emacs渲染了不同的表情?
考沙尔·莫迪

2
@kaushalmodi -我更新的例子包括8211作为--font-lock-keyword-face; 而8212作为---font-lock-function-name-face
法律列表

9

引用文档:

C-x =运行命令what-cursor-position,该命令是Windows中的交互式编译的Lisp函数simple.el

它必然C-x =

(what-cursor-position &optional DETAIL)

在光标位置(在屏幕上和缓冲区内)打印信息。还应在字符之后描述字符,并以八进制,十进制和十六进制给出其字符代码。

对于非ASCII多字节字符,如果编码系统对字符进行了安全编码,则还应在缓冲区的选定编码系统中提供其编码。如果字符编码为一个字节,则该代码以十六进制显示。如果字符被编码为多个字节,则仅显示“ ...”。

另外,使用前缀参数在* Help *缓冲区中显示有关该字符的详细信息。 另请参阅命令“ describe-char”。

强调和格式化我的。

尝试记住以下代码:

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

但是,如果您忘记了它们,则可以轻松地执行C-u C-x =,该操作会弹出一个缓冲区,其中包含其他信息,包括name:字段。


1
就字形而言,连字符,减号和破折号有什么区别?
2015年

HYPHEN-MINUS是纯破折号的规范Unicode名称,通常可以通过按键左侧的=键来键入。这是编程中到处使用的“常规”破折号。
PythonNut

什么时候称为破折号,什么时候称为连字符?
2015年

@Tim就我们而言,它们是同义词。Unicode标准机构将其称为连字符。你称之为破折号...。你们俩都不是错。
PythonNut

4
@蒂姆 在英语拼字法中,连字符连接事物。例如,在23中有一个连字符。破折号分开的东西。我根本不会说破折号。
TRiG

6

highlight-chars.el无论如何,请使用库突出显示任何Unicode字符。请参阅Emacs Wiki上的突出显示字符

您可以使用命令hc-highlight-chars以四种方式突出显示字符:

  1. 个别地
  2. 使用范围
  3. 使用字符类(例如[:digit:]
  4. 使用字符集(例如iso-8859-1lao

hc-highlight-chars提示您输入要在特定面孔中突出显示的角色以及用于该角色的面孔。(带有前缀arg的它不突出显示。)

当提示您突出显示字符时,您可以使用C-x 8 RET完成来选择Unicode字符。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.