2014-11-09 63 views
3

我想改变(或完全隐藏)出现在Emacs边缘(左侧和右侧)的“弯曲箭头”字符。我在Mac上使用Emacs 24,通过自制软件安装。我觉得它在视觉上分散注意力。较小的字符,如中心点,可能效果不错。隐藏/更改由于换行而引起的Emacs边缘弯曲箭头?

对于上下文,这是小的弯曲箭头的正式描述(来自http://www.gnu.org/software/emacs/manual/html_node/emacs/Continuation-Lines.html):

有时,在一行文本缓冲器的逻辑线过长,以适应窗口,Emacs将其显示为两个或更多的屏幕线。这称为换行或延续,而长逻辑行称为续行。在图形显示器上,Emacs指示在左右窗口边缘用小箭头折线。在文本终端上,Emacs通过在右边显示'\'字符来指示换行。

Emacs LineWrap Wiki page没有解决我的问题。

我发现迄今包含在this StackOverflow answer最好的信息:

当自动换行设置为无文本终端(-nw)的Emacs,反斜杠字符出现在右边距。

当在文本终端Emacs中将自动换行设置为t时,不显示反斜杠字符。设置visual-line-mode也可以将word-wrap设置为true。

当Emacs作为GUI窗口运行时,这不适用:无论单词换行的值如何,右侧空白处都会出现小弯曲箭头。

隐藏或更改弯曲的箭头可能吗?如果不是这样,那么或多或少的答案,“我看过X并得出结论说这是不可能的”,这也是可以的。

更新:虽然这不是一个可怕的变通,改变fringes我正在寻找:我要定制的“弯箭头”字符或位图。

回答

5

首先,一些快速的上下文。从Emacs Fringe Bitmaps:“边缘指示符是显示在窗口边缘的小图标,用于指示截断或延续的线条,缓冲区边界等。”

您不能用任意文本替换卷曲箭头。根据lunaryorn's answer to "Is It Possible To Replace Fringe Bitmaps With Text in Emacs?"

不,它不是。边缘“位图”实际上是位图,即0/1位的矢量,覆盖在边缘上。没有办法直接将任意unicode字符渲染到边缘。 [...]你可以做的是将一个unicode字符自己渲染成0/1位图。

就像它说的,你可以改变位图。 Fringe Bitmaps包含边缘位图的列表; left-curly-arrowright-curly-arrow是与这个问题有关的。

这是我制定的。根据自己的喜好调整。把它放在你的Emacs init文件中。

(define-fringe-bitmap 'right-curly-arrow 
    [#b00000000 
    #b00000000 
    #b00000000 
    #b00000000 
    #b01110000 
    #b00010000 
    #b00010000 
    #b00000000]) 
(define-fringe-bitmap 'left-curly-arrow 
    [#b00000000 
    #b00001000 
    #b00001000 
    #b00001110 
    #b00000000 
    #b00000000 
    #b00000000 
    #b00000000]) 

更多的文档,请Customizing Bitmaps,包括set-fringe-bitmap-face其中“设置脸的刘海,如果面对的是零,它选择了条纹的脸。位图的脸控制颜色画出它”。