2014-09-13 14 views
7

Czy jest możliwe użycie kolorów w wierszu powłoki Emacs (sam monit, a nie reszta ekranu powłoki) ze zmienną bash PS1? Wydaje mi się, że mam poprawną składnię (np. PS1='[\[email protected]\h \[\e[0;31m\]\W\[\e[m\]]\$ ' - działa ona w perspektywie lub ansi-term), ale wygląda na to, że Emacs stosuje twarz z podpowiedź-podkreślenie. Mogę ustawić to na jakiś kolor i to działa, ale chcę móc ustawić poszczególne części zachęty do różnych kolorów. Wolę używać powłoki na czas lub na koniec, więc wolałbym się nie przełączać.Kolory w wierszu powłoki powłoki Emacs

Dzięki.

Odpowiedz

6

Zdobione: The comint-highlight-prompt twarz została powołana do dziedziczenia z minibuffer-prompt, który został ustawiania :weight, :foreground i :background. Usunięcie dziedziczenia zapobiegło przesłonięciu kolorów ustawionych w PS1 przez twarz . Dodano to do mojego pliku .emacs.

(set-face-attribute 'comint-highlight-prompt nil 
        :inherit nil) 

Również, M-x customize-group <ret> font-lock-faces był pomocny przy ustalaniu tego.

+0

To nie zadziała w Ubuntu 16.04, które używa Emacsa 24,5 z powodu błędu Emacsa https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20084, który został już naprawiony w git: //git.sv.gnu .org/emacs.git w commit 792d44b3c31d2a682607ab8b79ae7d26b7402f41. Aby Twoje rozwiązanie działało, użyj https://www.gnu.org/software/emacs/manual/html_node/elisp/Hooks-for-Loading.html z "comint", aby naprawić "comint-snapshot-last-prompt" i "comint-output-filter" i "font-lock", aby dodać "font-lock - remove-face-from-text-property". –

0

używam tego, aby zmienić kolor zacisków i informacji w systemie Mac, może pomóc:

Cyan="$(tput setaf 6)" 
NC="$(tput sgr0)" # No Color 
export PS1="$Cyan.Where-> \w\n\\$\[$NC\]" 
+0

Dzięki, ale nadal jest ustawiona na twarz z podpowiedziami. Próbowałem robić '' (set-face-foreground 'comint-highlight-prompt-nil) 'w moim pliku .emacs, ale monit nadal ustawia się na wszystkie cyjan. –

-1

Musisz użyć zamiast ANSI termin powłokę dla kolorów terminali.

+1

Cóż, mam kolory terminalu w powłoce, po prostu nie mogę ich kontrolować dla zachęty z PS1 (lub jakiejś innej metody). –

Powiązane problemy