2012-11-24 13 views
7

Miałem iść na robienie mojego własnego motywu Oh My Zsh wcześniej. Wszystko jest dobrze, z wyjątkiem sytuacji, gdy wpisuję w wierszu długie linie (dłuższe niż linia widoczna poniżej), linia znika. Linia pojawi się ponownie, jeśli zmienię rozmiar okna.Niestandardowy motyw Oh My Zsh: długie podpowiedzi znikają/obcinają

Czy coś w moim temacie powoduje to?

Jeśli typ dodatkowego znaku, a następnie usunięcie jednego, kursor pojawia się na krawędzi okna.

Można view the code for the theme here. Oto nieco Chyba mamy do czynienia z:

# Build the prompt 
PROMPT=' 
' # Newline 
PROMPT+='${style_user}%n' # Username 
PROMPT+='${style_chars}@' # @ 
PROMPT+='${style_host}%m' # Host 
PROMPT+='${style_chars}: ' # : 
PROMPT+='${style_path}%c ' # Working directory 
PROMPT+='$(git_custom_status)' # Git details 
PROMPT+=' 
' # Newline 
PROMPT+='${style_chars}\$${RESET} ' 

Odpowiedz

11

Nawiasem mówiąc, link jest uszkodzony, podświetlając jeden z problemów z zamieszczając link do kodu zamiast samego kodu - wszelkie przyszłe widzowie swoje pytanie nie można uzyskać pełny obraz.

Myślę, że problemem jest to, że znaki „color” należy użyć uciekł w parze %{...%}:

%{...%} 
Include a string as a literal escape sequence. The string within the braces 
should not change the cursor position. Brace pairs can nest. 

Korzystanie z najnowszej commit on github, nie widzę tego problemu - czy to naprawić ? Jednak widzę pewne problemy z umieszczaniem kursora i rysowaniem linii, szczególnie z TAB. Po naciśnięciu TAB, kursor jest przesuwany w górę o jedną linię:

enter image description here Tłoczone TAB tutaj. enter image description here Wciśnięty TAB tutaj. enter image description here

Za każdym razem PROMPT jest ponownie rysowane "w górę" o jedną linię. Zostało to poprawione przez umieszczenie kody kolorów w %{...%}:

# Solarized Dark colour scheme 
BOLD="%{$(tput bold)%}" 
RESET="%{$(tput sgr0)%}" 
SOLAR_YELLOW="%{$(tput setaf 136)%}" 
SOLAR_ORANGE="%{$(tput setaf 166)%}" 
SOLAR_RED="%{$(tput setaf 124)%}" 
SOLAR_MAGENTA="%{$(tput setaf 125)%}" 
SOLAR_VIOLET="%{$(tput setaf 61)%}" 
SOLAR_BLUE="%{$(tput setaf 33)%}" 
SOLAR_CYAN="%{$(tput setaf 37)%}" 
SOLAR_GREEN="%{$(tput setaf 64)%}" 
SOLAR_WHITE="%{$(tput setaf 254)%}" 

nie jestem w 100% pewny, bez oryginalnego ~/.zshrc, ale to powinno poprawić szybka trochę. :)

Oprócz pomarańczy, można również użyć terminala opartej Solarized profil i zshcolors, który może być bardziej mobilny. Nie mogłem jednak uzyskać pomarańczowego koloru bez tput.

#autoload colors && colors 
#SOLAR_YELLOW="%{$fg[yellow]%}" 
#SOLAR_ORANGE="%{$(tput setaf 166)%}" 
#SOLAR_RED="%{$fg[red]%}" 
#SOLAR_MAGENTA="%{$fg[magenta]%}" 
#SOLAR_VIOLET="%{$fg_bold[magenta]%}" 
#SOLAR_BLUE="%{$fg[blue]%}" 
#SOLAR_CYAN="%{$fg[cyan]%}" 
#SOLAR_GREEN="%{$fg[green]%}" 
#SOLAR_WHITE="%{$fg[white]%}" 
+0

Czy muszę również uciec od innych zmiennych, czy to tylko kolory? Na przykład pseudonimem kolory do innych zmiennych, takich jak: 'style_path =" $ {RESET} $ {SOLAR_GREEN} "' –

+0

@OliverJosephAsh Pod warunkiem, że uciekł * gdzieś *, jesteś dobry - uciekłem w najwcześniejszym możliwym czasie ('SOLAR_ '), więc 'style_path' rozwinie się do' "% {$ (tput sgr0)%}% {$ {tput setaf 64%}" ', przy obu zmiennych już ucieknie - uniknięcie" wyższych "zmiennych wygranych ' t * boli *, ale nie sądzę, że jest jakaś przewaga :) – simont