2011-07-29 34 views
12

我個人保留所有行少於80個字符,但我也在其他程序員不關心行長的團隊中工作。關閉Emacs空白模式「長線」可視化

我喜歡使用空白模式,但當我在處理不應該干擾長行的項目時,長行可視化真的很煩人。似乎應該很容易關閉長線可視化---我點擊m-x global-whitespace-toggle-options l,然後點擊m-x global-whitespace-toggel-options ?確認「長線可視化」已關閉。但長線仍然突出顯示。我殺死緩衝區並重新加載它們,突出顯示仍然存在。我絕對使用全局而非本地的空白模式。

爲什麼我無法關閉長線可視化?

+1

沒有想從「The I.T. Crowd」聽起來像Roy,你是否嘗試過在切換全局選項後關閉緩衝區中的'white-space-mode'並再次打開? – sanityinc

回答

10

我最後一次自定義whitespace-mode,我注意到對設置的更改對已存在的緩衝區沒有任何影響;嘗試重新創建緩衝區,或者離開並重新進入whitespace-mode。如果您還不知道,可以使用M-x customize-group whitespace完全關閉該特定選項,而不是手動完成。

編輯:具體而言,您要自定義whitespace-style變量。這可讓您打開和關閉各個樣式。在這種情況下,您應該關閉標有「(臉部)線條」和「(臉部)線條,只有超長部分」的標籤。前者在過長時改變整條線的面,而後者只改變延伸超過閾值的部分的面。

(此組中的其他選項定義whitespace-mode將用於突出顯示您打開的樣式,用於識別特定情況的正則表達式等,但通常您只關心whitespace-style)。

+1

請注意,您可以通過自定義「空白樣式」設置以及刪除「線尾」或類似項來關閉長線「驗證」。 – duma

+0

但這並不能真正回答這個問題,我的意思是,我們在「M-x自定義組」中改變了什麼?我已經多次改變了「空白線面」(即關閉並保存)並且沒有任何變化。 – Startec

+0

我編輯了我的答案,以更具體,但請注意,我的答案更多的是爲什麼更改設置沒有更新緩衝區的問題。在應用這些設置之前,您通常必須關閉並重新打開緩衝區。另一方面,編輯_face_(而不是更新_style_變量)應立即更新使用該面部的所有內容;也許你在編輯錯誤的臉? – db48x

5

設置空白行,列一個較高的值(默認爲80),所以排長隊加亮不踢:

(setq whitespace-line-column 250)

+4

爲什麼使用黑客時,你可以關閉它? –

+0

@EugeneBeresovsky因爲這是唯一真正有效的答案。 – Startec

1

我假設你已經有了whitespace-mode在您的​​或類似地方激活。如果是這樣,你能適應dumacomment以上,並且或者

  • 編輯,設置whitespace-style的elisp的去除lines-tail。例如。,Emacs Prelude

    (setq whitespace-style '(face tabs empty trailing lines-tail))

    簡單的改變,要

    (setq whitespace-style '(face tabs empty trailing))

  • 如果你不想直接編輯elisp的,而是用自己的代碼後覆蓋它,做一些事情像

    (setq whitespace-style (delete 'lines-tail whitespace-style))

    不幸的是,如果運行帶有自動載入的緩衝區(使用類似Emacs Desktop)的前奏,初始設置將優先:對,你想看到whitespace-style的指示顯示的每個緩衝區,必須[1]

    1. 殺緩衝
    2. 重新打開緩衝

[1]:注意OP:如果有另一種方式來重新加載一個緩衝區,請編輯或評論這個答案。我希望能找到類似M-x reload-buffer的東西,但是我沒有看到類似C-h a buffer的東西。

+0

我認爲這個答案是最有用的,如果你想使用鉤子的主要模式,例如當你想停用它的文本編輯,但然後再次啓用它的一些編程語言的東西。 – Zelphir