2017-02-08 80 views
1

我從命令提示符切換到Emacs GUI模式,我刪除惱人的菜單/工具/滾動條,我想要更平滑的顏色,在GUI版本上工作。Emacs GUI如何切換到文本UI元素(小部件)

問題是,當我看到插入文本的常規按鈕(ui小部件)時,我的眼睛在流血,我想要它們的文本版本。我想使用Emacs GUI作爲「更好的cmd來運行emacs -nw」。我嘗試過在主計算機上切換到Linux失敗(其他人運行Linux),但在這一點上,我並不想一直都在雙啓動。

TL; DR:圖形用戶界面部件(按鈕,複選框) - >文本版本(如在emacs的-nw)

+0

您還在哪裏看到除了您說的框架頂部的工具欄上的按鈕已被刪除之外的其他按鈕?你是在談論「M-x自定義」還是除緩衝區中純文本編輯以外的其他內容? – lawlist

+0

例如,如果我切換我的主題,我看到按鈕「搜索」「恢復...」,「應用」等作爲真正的按鈕,而不是像「[Search]」(setq custom-raised-buttons nil)「 – FatalError

回答

0

你看到的'按鈕'實際上只是帶有一些字體技巧的文本,以使它們看起來像是被擡起或'裝盒'。完全擺脫它們可能有點棘手,但你應該能夠刪除它們中的大部分。

Emacs使用(在某些地方)繼承方法來定義'faces',這意味着有時您可能需要找到父表面來修復它的外觀。這些面具有下劃線和框等屬性。例如,以下是我的系統上「按鈕」面的定義。

Hide Button face: [sample] 
    State : THEMED. 
    Default face used for buttons. 
    [ ] Font Family: -- 
    [ ] Font Foundry: -- 
    [ ] Width: -- 
    [ ] Height: -- 
    [ ] Weight: -- 
    [ ] Slant: -- 
    [X] Underline: Value Menu On: 
     Color: Value Menu Foreground Color 
     Style: Value Menu Line 
    [ ] Overline: -- 
    [ ] Strike-through: -- 
    [ ] Box around text: -- 
    [ ] Inverse-video: -- 
    [ ] Foreground: -- 
    [ ] Distant Foreground: -- 
    [ ] Background: -- 
    [ ] Stipple: -- 
    [ ] Inherit: -- 
    Hide Unused Attributes 

這裏是

Hide Custom Button face: [sample] 
    State : THEMED. 
    Face for custom buffer buttons if ‘custom-raised-buttons’ is non-nil. 
    [ ] Font Family: -- 
    [ ] Font Foundry: -- 
    [ ] Width: -- 
    [ ] Height: -- 
    [ ] Weight: -- 
    [ ] Slant: -- 
    [ ] Underline: -- 
    [ ] Overline: -- 
    [ ] Strike-through: -- 
    [X] Box around text: Value Menu Box: 
     Width: 2 
     Color: Value Menu * 
     Style: Value Menu Raised 
    [ ] Inverse-video: -- 
    [X] Foreground: #93a1a1  Choose (sample) 
    [ ] Distant Foreground: -- 
    [X] Background: #073642  Choose (sample) 
    [ ] Stipple: -- 
    [ ] Inherit: -- 
    Hide Unused Attributes 

說明這兩個面使用下劃線和箱屬性的定義。

你需要做的是改變屬性,使面部不會導致你的眼睛流血。有兩種方式(實際上更多,但兩種方式很容易描述!),你可以做到這一點。

M-X列表面顯示

列表面顯示是 「faces.el」互動編譯Lisp函數。

這是必然的。

(列表面顯示&可選REGEXP)

列出所有的面,使用每一個相同的樣品的文本。示例文本是 一個來自變量'list-faces-sample-text'的字符串。

如果REGEXP非零,只列出名稱與此 正則表達式匹配的面。當用前綴參數交互調用時, 使用'read-regexp'提示使用正則表達式。

和MX定製面(點必須是你要自定義的臉或你需要知道它的名字)

定製面是一個交互式自動加載編譯Lisp函數在 'cus-edit.el'。

這是必然的。

(自主面&可選FACE OTHER-WINDOW)

定製FACE,這應該是一個面的名稱或爲零。如果FACE爲零,則 自定義所有面。如果FACE實際上是一個臉部別名,則自定義 臉部,這是別名。

如果OTHER-WINDOW非零,則顯示在另一個窗口中。

交互式地,當點在具有指定面的文本上時, 建議自定義該面,如果它是可定製的。

我的建議是使用list-faces-display並遍歷列表來識別那些你不喜歡的面,然後將它們改爲可以接受的東西。這應該得到他們大部分。然後,當使用emacs時,當您發現另一個「按鈕」時,您可以將光標放在它上面並使用自定義面板來更改它。

請注意,加載主題也可能會更改面部設置,因此您可能需要獲取正確的順序以獲得一致的行爲。

+0

哦,太棒了!非常感謝你! – FatalError

1

嘗試設置(setq custom-raised-buttons nil)。這將使自定義緩衝區中的按鈕看起來更像平面文本。您可以將光標放在您認爲很醜的事物上並更改M-x customize-face RET來更改其他屬性。最後,你可能想嘗試一些主題; Melpa(搜索「-theme」)有幾十個。

+0

」使它們仍然是按鈕,但按鈕中的文本位於方括號內。 – FatalError

+0

仔細一看,''custom-raised-buttons'在涉及變量時有點特別。在'cus-edit.el'加載之前設置它(或者用'M-x加載庫RET cus-edit RET'重新加載);即使這樣它只適用於新的自定義緩衝區。有一些代碼使用該值,並且只在文件加載時才運行。在init文件中設置變量並重新啓動Emacs應該足夠了。 – jpkotta