通常,反引号和撇号在文档字符串与诊断信息中会被特殊处理,转换为成对的单引号(也称 “弯引号”)。例如,文档字符串 "Alias for `foo'." 与函数调用 (message "Alias for `foo'.") 都会转换为 "Alias for ‘foo’."。较少见的情况下,Emacs 会原样显示反引号与撇号,或仅显示为撇号(如 "Alias for 'foo'.")。
文档字符串与消息格式应保证在任意样式下均可正常显示。例如,文档字符串 "Alias for 'foo'." 通常不符合预期,因为它可能显示为 "Alias for ’foo’.",这在英文中并非标准写法。
有时无论文本引用样式如何,你都需要原样显示反引号或撇号而不被转换。在文档字符串中可通过转义实现。例如,文档字符串 "\\=`(a ,(sin 0)) ==> (a 0.0)" 中的反引号用于表示 Lisp 代码,因此被转义,无论引用样式如何都会原样显示。在调用 message 或 error 时,可通过 "%s" 格式搭配 format 调用避免转换。例如,(message "%s" (format "`(a ,(sin %S)) ==> (a %S)" x (sin x))) 会始终以反引号开头显示消息。
该用户选项的值为一个符号,指定 Emacs 在帮助与消息文本中使用的单引号样式。若值为 curve,则使用弯引号,样式为 ‘like this’;若为 straight,则使用直撇号,样式为 'like this';若为 grave,则不转换引号,保持 `like this',即 Emacs 25 版本之前的标准样式。默认值 nil 在可显示弯引号时等效于 curve,否则等效于 grave。
该选项在弯引号显示异常的平台上很有用。你可以根据个人习惯自由自定义。
不应直接读取变量 text-quoting-style 的值。而应使用同名函数,在上述 nil 情况下动态计算当前终端适用的正确引用样式。