TL; DR
Wszystko, co musisz zrobić, to umieścić to w swoim ~/.zshrc
(lub w tym samym pliku, co motyw zachęty):
ZLE_RPROMPT_INDENT=0
Detale
W wersjach ZSH prowadzących do 5.0.2 wartość kodu źródłowego ZSH o nazwie rprompt_off
(która ustawia przesunięcie prawego marginesu) była na stałe zakodowana 1
.
Ale w wersji 5.0.5 programiści dodali możliwość zastąpienia tej wartości domyślnej poprzez ustawienie ZLE_RPROMPT_INDENT
zmiennej środowiskowej.
Uzasadnieniem dla tej „tiret” Jest tak, ponieważ niektóre starsze terminale zaczną przesuwać jeżeli ostatnia komórka wyświetlacza miała charakter w nim.
Dla wersji ZSH wcześniejszych niż 5.0.5
Jeśli korzystasz ze starszej wersji ZSH i nie możesz zaktualizować, nadal możesz pozbyć się tego miejsca, wykonując oba następujące kroki:
- Oszukać zsh na myśli swoją RPROMPT to postać krótszy niż jest w rzeczywistości przy użyciu standardowego opakowania niewidoczny sekwencji:
%{...%}
- Następnie wysyłanie sekwencji ucieczki kursora za pomocą terminfo:
%{terminfo[cub1]}
Sprawdź FAQ i tę wiadomość na liście mailowej, aby uzyskać więcej informacji.
Anthony Michael Cook
źródło
%git<Tab>
przekształca się w%ggit
Wysłałem raport o błędzie do opiekunów zsh, ale wygląda na to, że takie zachowanie jest zgodne z projektem. Ten problem jednak mnie tak zirytował, że postanowiłem samodzielnie załatać i skompilować zsh jako tymczasową poprawkę. Jeśli korzystasz z systemu OS X i używasz Homebrew (powinieneś), możesz zainstalować zsh wraz z moją łatą, uruchamiając:
prawdopodobnie będziesz chciał dodać
/usr/local/bin/zsh
do/etc/shells
ichsh -s /usr/local/bin/zsh
po jej zakończeniu. Na koniec, oto surowy plik różnicowy dla każdego, kto jest zainteresowany:źródło
Myślę, że biała przestrzeń po prawej jest zakodowana na stałe. Możesz jednak oszukać
zsh
za pomocą następującego ustawienia:co w zasadzie mówi,
zsh
że gwiazda nie zajmuje znaków; zman zshmisc
:Wadą jest to, że „przesuwasz” puste miejsce na koniec
PROMPT
:Te
|
symbole oznaczają końcowe krawędzie ■ kursora.Innym pomysłem byłoby zwiększenie
COLUMNS
o 1:Ale trzeba wymyślić sposób, jak to zrobić tylko dla szybkiego renderowania, ale nie dla poleceń. Spowoduje to połknięcie ostatniego znaku w każdym wierszu wiersza polecenia z wieloma wierszami.
źródło