2014-11-09 56 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其中「設置臉的劉海,如果面對的是零,它選擇了條紋的臉。位圖的臉控制顏色畫出它」。