代码之家  ›  专栏  ›  技术社区  ›  C-x C-c

终端Emacs中的删除线

  •  0
  • C-x C-c  · 技术社区  · 6 年前

    我想找一个删除线在终端emacs工作。当我通过 face 路线,什么都没发生。但是,我可以将带删除线的文本粘贴到Emacs中,并正确呈现。当我 describe-char 上面写着 i ):

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   jpkotta    6 年前

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

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

    但是,也许您试图显示某个面(例如,字体锁定),那么设置strike-through属性是正确的方法。我的终端(RXVTUnicode)也可以显示组合字符,但我不能让它显示一个带有strike-through的面。