我早些时候制作了自己的Oh My Zsh主题.一切都很好,除非我在提示符中输入长行(任何长于下面的行),该行消失.但是,如果我调整窗口大小,则会重新显示该行.
我的主题中有什么东西会导致这种情况发生吗?
如果我键入一个附加字符,然后删除一个,光标将出现在窗口的边缘.
你可以view the code for the theme here.这是我认为我们关注的一点:
# 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} '
顺便提一下,您的链接已被破坏,突出显示发布代码链接而不是代码本身的问题之一 – 您的问题的任何未来的观看者都无法全面了解.
我认为你的问题是你使用的’颜色’字符应该在一对%{...%}
中转义:
%{...%} Include a string as a literal escape sequence. The string within the braces should not change the cursor position. Brace pairs can nest.
使用您最新的commit on github,我没有看到这个问题 – 你修复了吗?但是,我发现光标放置和线条绘制存在一些问题,特别是对于TAB.按TAB键时,光标向上移动一行:
在这里按TAB.
在这里按TAB.
PROMPT每次都被重新“拉”一行.通过将颜色代码封装在%{…%}中来解决此问题:
# 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)%}"
我没有100%确定没有原来的〜/ .zshrc,但这应该会提高你的提示.