2012-05-15 17 views
13

To jest dziwne, że nie byłem w stanie znaleźć dobrej odpowiedzi w Google (oczywiście zawsze istnieje możliwość, że po prostu zawodzę). Po wyświetleniu monitu o bash, jeśli wybarwię część wiersza, gdy kliknę "w górę", aby przejść do poprzedniego polecenia, nie mogę przejść do początku wiersza po przekroczeniu pewnej liczby znaków (w szczególności 31) .Problem z historią szybkiego wyświetlania Bash

Mój obecny znak zachęty bash jest to: (kolory są zdefiniowane wcześniej w moim .bashrc)

PS1="[\[email protected]$cyan\h$NC \w] " 

Ale jeśli zmienię go w ten sposób:

PS1="[\[email protected]\h \w] " 

To już nie powstrzymuje mnie przed pójściem na początku linii.

Część nieparzysta, wizualnie, kiedy wracam do domu, aby przejść do początku linii (lub użyć klawiszy strzałek), zatrzymuje 11 znaków w ciągu znaków, ale jeśli edytuję go z tego miejsca, to edytuje zaczynając od początku linii.

Czy ktoś wie, dlaczego tak się dzieje? Chciałbym używać kolorów w moim monitorze, ponieważ administruję serwerami, a kolory to to, jak rozróżniam moje pola na pierwszy rzut oka.

Odpowiedz

25

Sekwencje nieprodukujące się, takie jak kody kolorów, muszą być otoczone \[ i \], aby ich długości nie były liczone jako część długości monitu.

+1

[Przykłady] (https://github.com/l0b0/tilde/blob/9161937d6173e65e81de145bbc7edbbb074e99e5/.bashrc#L92) – l0b0

+0

To było dokładnie to, dzięki! –

+0

Miałem ten irytujący problem od miesięcy. Dziękuję Ci! +1 – jweyrich

Powiązane problemy