Czy istnieje sposób, aby uzyskać kolorowe wydruki, używając uzupełniania tabulacji w terminalu? Moje kolory są w porządku wszędzie indziej, więc wiem, że pomyślnie włączyłem kolorowy terminal.
Jak określić „kolorowe wydruki przy użyciu uzupełniania tabulatorami”?
slhck
Odpowiedzi:
21
W Bash nie ma możliwości kolorowania wydruków podczas ukończenia, tak jak w przypadku ryb i zsh. Można napisać funkcje uzupełniania, które generują sekwencje kontroli kolorów, ale trzeba będzie zachować kopie proponowanych uzupełnień z kodami kolorów i bez nich lub usunąć je, gdy użytkownik dokona wyboru, ponieważ Bash używa zaznaczenia bezpośrednio normalnie, a kody kolorów stanąć na przeszkodzie.
Jeśli jest to dla Ciebie ważna funkcja, polecam rozważyć użycie Zsh.
Aktualizacja
Bash 4.3 readline dodaje zmienną, która pozwala na kolor uzupełniania tabulacji, aby wyświetlać różne kolory dla plików wykonywalnych, katalogów itp. Podczas uzupełniania tabulatorów:
colored-stats
Readline w nadchodzącym Bash 4.4 dodaje zmienną, która umożliwia kolorowi wskazanie pasującej części łańcucha podczas uzupełniania tabulacji.
colored-completion-prefix
Możesz zobaczyć wartości tych zmiennych za pomocą
bind -v | grep color
Aby je ustawić, dodaj do ~/.inputrcpliku wiersze, takie jak:
@Ryan: Zsh jest dość kompatybilny z Bash. Prawdopodobnie zmiana byłaby dość łatwa. Ma wiele potężnych funkcji, których Bash nie ma (lub do których musisz użyć zewnętrznych narzędzi). Jest tylko kilka rzeczy, które różnią się znacznie w podstawach. Przykładem jest to, że indeksy tablicowe są oparte na wartościach jeden zamiast zera, ale istnieje ustawienie, które ma na to wpływ. Zsh używam jednak tylko okazjonalnie.
Wstrzymano do odwołania.
1
@AstroFloyd: Z Bash Manua : „Definicje kolorów pochodzą z wartości LS_COLORSzmiennej środowiskowej”. Dokumentacja dla tej zmiennej znajduje się tutaj . Nie ma ustawienia dla manstron, więc musisz sprawdzić, gdzie LS_COLORSjest ustawiony, znaleźć kombinację kolorów, która odpowiada i zmienić go. W moim systemie mannazwy stron nie są kolorowe po wypełnieniu tabulatorami (i zepsute dowiązania symboliczne, a lsdane wyjściowe czerwono-szare ...)
Wstrzymano do odwołania.
1
... są jasnoniebieskie jak prawidłowe dowiązania symboliczne podczas uzupełniania tabulatorów).
Wstrzymano do odwołania.
1
@AndyCarlson: Czy bind -v | grep colorpokazuje oba set colored-completion-prefix oni set colored-stats on? Jeśli tak, co się stanie, gdy wpiszesz literę, a następnie naciśniesz dwukrotnie klawisz Tab? Jeśli dodałeś ustawienia do swojego, ~/.inputrcale nie uruchomiłeś nowego terminala lub nie wykonałeś re-read-init-filego, naciskając control-x control-r, ustawienia nie zostaną zastosowane.
Wstrzymano do odwołania.
2
@AndyCarlson Co jest wyświetlane w wierszu polecenia po naciśnięciu klawiszy ctrl-x ctrl-v?
Wstrzymano do odwołania.
3
Nie wiem, o kolorach zakończenia dla opcji polecenia i argumenty, ale dla nazwy pliku i katalogu, zgodnie z ( /unix//a/133866 ) stanów user495470 że w Bash 4.3 i później można dodać set colored-stats ondo ~/.inputrcdostać kolorowe zakończenie, kiedy to zrobisz ls <tab>.
Odpowiedzi:
W Bash nie ma możliwości kolorowania wydruków podczas ukończenia, tak jak w przypadku ryb i zsh. Można napisać funkcje uzupełniania, które generują sekwencje kontroli kolorów, ale trzeba będzie zachować kopie proponowanych uzupełnień z kodami kolorów i bez nich lub usunąć je, gdy użytkownik dokona wyboru, ponieważ Bash używa zaznaczenia bezpośrednio normalnie, a kody kolorów stanąć na przeszkodzie.
Jeśli jest to dla Ciebie ważna funkcja, polecam rozważyć użycie Zsh.
Aktualizacja
Bash 4.3 readline dodaje zmienną, która pozwala na kolor uzupełniania tabulacji, aby wyświetlać różne kolory dla plików wykonywalnych, katalogów itp. Podczas uzupełniania tabulatorów:
Readline w nadchodzącym Bash 4.4 dodaje zmienną, która umożliwia kolorowi wskazanie pasującej części łańcucha podczas uzupełniania tabulacji.
Możesz zobaczyć wartości tych zmiennych za pomocą
Aby je ustawić, dodaj do
~/.inputrc
pliku wiersze, takie jak:źródło
LS_COLORS
zmiennej środowiskowej”. Dokumentacja dla tej zmiennej znajduje się tutaj . Nie ma ustawienia dlaman
stron, więc musisz sprawdzić, gdzieLS_COLORS
jest ustawiony, znaleźć kombinację kolorów, która odpowiada i zmienić go. W moim systemieman
nazwy stron nie są kolorowe po wypełnieniu tabulatorami (i zepsute dowiązania symboliczne, als
dane wyjściowe czerwono-szare ...)bind -v | grep color
pokazuje obaset colored-completion-prefix on
iset colored-stats on
? Jeśli tak, co się stanie, gdy wpiszesz literę, a następnie naciśniesz dwukrotnie klawisz Tab? Jeśli dodałeś ustawienia do swojego,~/.inputrc
ale nie uruchomiłeś nowego terminala lub nie wykonałeśre-read-init-file
go, naciskając control-x control-r, ustawienia nie zostaną zastosowane.Nie wiem, o kolorach zakończenia dla opcji polecenia i argumenty, ale dla nazwy pliku i katalogu, zgodnie z ( /unix//a/133866 ) stanów user495470 że w Bash 4.3 i później można dodać
set colored-stats on
do~/.inputrc
dostać kolorowe zakończenie, kiedy to zrobiszls <tab>
.źródło