如题,Emacs里引号都是半角的(unicode委员会真的sb)。有人有解决办法吗?
(setq text-quoting-style 'curve)
你也可以用方括号
(setq use-default-font-for-symbols nil)
我没说清楚,我是说即使在中文环境里引号依然是半宽:
(setq text-quoting-style 'curve)
和
(setq use-default-font-for-symbols nil)
似乎都没有效果。是我引号打错了吗?
嗯…你给 symbol
这个 charset 设置成中文字体了么?
我这边的话,把 symbol
设置成中文字体,结合 use-default-font-for-symbols nil
是可以显示全角引号的。
另外 C-u C-x =
可以查看字符属于哪个 charset。
这样的话,英文里会不会变成显示全角引号?
不会。原理上的话应该是 default 字体 fallback 到另外一个字体,不过我不是字体专家,说不出具体的所以然,但总之效果上是这样。
我这里所有引号都会变成全角。可能有什么问题。
我突然想到可以用font-lock直接通过环境决定显示全角半角:
(defface quanjiao-quote '((t . (:family "Source Han Serif SC")))
"Face for full width quotation marks."
:group 'convenience)
(defun quanjiao-matcher (limit)
"Matcher for font-lock."
(and (re-search-forward "[‘’“”]" limit t)
(or (memq (aref char-script-table (char-after))
'(han cjk-misc))
(memq (aref char-script-table (char-before (1- (point))))
'(han cjk-misc)))))
(define-minor-mode quanjiao-mode
"Display full width quotation marks."
:lighter ""
(if quanjiao-mode
(font-lock-add-keywords nil '((quanjiao-matcher . 'quanjiao-quote)))
(font-lock-remove-keywords nil '((quanjiao-matcher . 'quanjiao-quote))))
(jit-lock-refontify))
把face的字体改成中文字体就可以了。只能说Emacs牛逼,别的编辑器能这么简单地做到这点?
(严格来说用的不是font-lock,是jit-lock) 改成用font-lock了。
2 个赞
在把Emacs当成排版引擎的邪路上越走越远
这叫 高 级 编 辑 器 显 示 功 能。