由于自动换行隐藏/更改Emacs条纹弯曲箭头?

Dav*_* J. 4 emacs word-wrap emacs24 fringe

我想改变(或完全隐藏)Emacs边缘(左侧和右侧)中出现的"弯曲箭头"字符.我在Mac上使用Emacs 24,通过自制软件安装.我发现它在视觉上分散了注意力.较小的角色,如中心点,可能效果很好.

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

有时,缓冲区中的一行文本 - 逻辑行 - 太长而无法放入窗口,Emacs将其显示为两个或多个屏幕行.这称为换行或延续,长逻辑行称为续行.在图形显示器上,Emacs指示左右窗口条纹中带有小弯曲箭头的换行.在文本终端上,Emacs通过在右边距处显示"\"字符来指示换行.

Emacs的LineWrap Wiki页面并没有解决我的问题.

到目前为止我发现的最佳信息包含在StackOverflow的答案中:

当在文本终端(-nw)Emacs中将自动换行设置为nil时,反斜杠字符出现在右边距上.

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

当Emacs作为GUI窗口运行时,这不适用:无论自动换行的值如何,右边距都会出现小的弯曲箭头.

是否可以隐藏或更改弯曲的箭头?如果没有,一个或多或少说"我看过X并得出结论不可能"的答案也是可以的.

更新:虽然它不是一个可怕的变通,改变条纹不是我要找的:我要定制的"弯箭头"字符或位图.

Dav*_* J. 6

首先,一些快速的背景.来自Emacs Fringe Bitmaps:"条纹指示器是窗口边缘显示的微小图标,表示截断或连续的线条,缓冲区边界等."

您不能用任意文本替换卷曲箭头.根据lunaryorn的回答"是否有可能用Emacs中的文本替换边缘位图?" :

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

就像它说的那样,你可以改变位图.边缘位图 包含一系列边缘位图; left-curly-arrow并且right-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])
Run Code Online (Sandbox Code Playgroud)

自定义位图提供了更多文档,包括set-fringe-bitmap-face"设置边缘的面.如果面是零,则选择边缘面.位图的面控制颜色以绘制它".