首页 > 解决方案 > 终端 Emacs 中的删除线

问题描述

我正在尝试在终端 emacs 中使用删除线。当我通过face路线添加删除线时,没有任何反应。但是,我可以将带有删除线的文本粘贴到 emacs 中并正确呈现。当我describe-char打开它时,它说(完成i):

Composed with the following character(s) "̶" by these characters:  
i (#x69)
- (#x336)

我知道许多终端无法处理删除线,但我知道我的可以,因为您可以将它们粘贴到其中。我很难理解为什么编辑脸部不起作用,但我可以粘贴删除线。

标签: unicodeemacs

解决方案


听起来您想插入组合字符以删除,这样您就可以更改缓冲区的内容。我不认为我得到了所有极端情况,但这是一个开始:

(defun strikeout-region (b e)
  "Use \"COMBINING LONG STROKE OVERLAY\" unicode char to strike out the region."
  (interactive "r")
  (when (use-region-p)
    (save-mark-and-excursion
      (goto-char b)
      (while (and (<= (point) e)
                (not (eobp)))
        (unless (looking-back "[[:space:]]" (1- (point)))
          (insert-char #x336)
          (setq e (1+ e)))
        (forward-char 1)))))

但也许您正试图显示某个面孔(通过例如字体锁定设置),然后设置删除线属性是执行此操作的正确方法。我的终端(rxvt-unicode)也可以显示组合字符,但我无法让它显示带有删除线的脸。


推荐阅读