2011-02-07 47 views

回答

11

我經歷過同樣的問題,並花了相當長的一段時間,試圖解決它。圖形錯誤是linum模式和邊緣渲染方式之間的衝突的結果。不幸的是,我無法在linum.el中解決這個問題,並且附帶顯示代碼是C源代碼的一部分。

它仍然可以做!解決這個問題的最簡單方法就是關閉邊緣。

M-x fringe-mode RET none RET 

爲了使邊緣永久保持關閉,我建議用M-x customize-group RET fringe自定義設置,因爲Emacs的爲Mac OS X一些編譯的版本有自己的邊緣設置,可以覆蓋你的.emacs文件的組成部分。

我真的不需要那些換行指標,所以沒有邊緣不會打擾我。但是,我確實錯過了行號和緩衝區文本之間的輕微分隔。我遵循Emacs Wiki上的一篇文章的建議來恢復間距。在亞麻的0.9x版本,從

(setq width (max width (length str))) 

(setq width (max width (+ (length str) 1))) 

的靈感這種變化線160變化是在這裏:http://www.emacswiki.org/emacs/LineNumbers

有在源鏈接來設置linum-format參數變量而不是修改linum.el。雖然我明白他們來自哪裏,但現在大多數顏色主題都會爲額外的空間着色,而不是提供我正在尋找的東西(關於作爲背景色的空間的分離)。如果你要編輯linum.el,請確保運行

M-x emacs-lisp-byte-compile-and-load 

使更改持久化。您可以通過查看圖片中光標前的空格來查看結果:http://i.stack.imgur.com/TxyMr.png(我沒有足夠的信譽來嵌入圖片)。

沒有更多的圖形工件!

0

這就是我如何在我的.emacs中設置的,我沒有這個問題,雖然我也沒有使用帶有gtk或任何其他gui的emacs。

(亞麻模式+1)

(setq亞麻格式 「%d」)

你可能想劈周圍(setq linum-format),看看你是否能取得好成績。另外不要忘記瀏覽emacswiki on linum

7

我有同樣的問題,我想出了一個解決方案,雖然它不是最漂亮的,由於在行號左邊有一個額外的空間,它比改變linum.el更優雅。這裏是我的〜/的.emacs的相關部分:

;; Linum mode                                                       
(global-linum-mode t)                                                     
;; Offset the number by two spaces to work around some weird fringe glitch                                          
(setq linum-format " %d ") 

這消除邊緣覆蓋問題,並沒有足以抵消行號以外的任何其他影響。

0

使行號與緩衝文本之間的分離,跟隨變化會更好:

在亞麻的0.9x版本,變更線150從

(CONCAT「%」(數-to-串w)的 「d」)))))

(CONCAT 「%」(數到字符串w)的 「d」)))))

本作分離了與行號相同的背景顏色「。

+0

編輯原始代碼是不是一個好主意,但。我建議採用以下答案的代碼,並對其進行更改:http://stackoverflow.com/a/11496199/324105 – phils 2012-07-17 03:30:00

0

問題仍然出現在emacs 24.4,OS X 10.10.1上。 的解決方案,我摸索出: 加載您所選擇的主題後:

(load-theme 'whatever) 
(set-face-attribute 'fringe nil :background (face-background 'default)) 
相關問題