顺便提一下,你的链接已经失效了,这凸显了发布代码链接而不是代码本身的问题之一 - 任何未来查看你问题的人都无法获得完整的图片。
我认为你的问题在于你使用的'color'字符应该在一对%{...%}
中进行转义:
%{...%}
Include a string as a literal escape sequence. The string within the braces
should not change the cursor position. Brace pairs can nest.
使用您在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)%}"
没有原始的~/.zshrc
,我不确定是否百分之百正确,但这应该会稍微改善你的提示符。 :)
除了使用橙色外,您还可以使用基于终端的Solarized
配置文件和zsh
colors
,这可能更具可移植性。 不过,如果没有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]%}"
style_path="${RESET}${SOLAR_GREEN}"
- user1082754SOLAR_<COLOR>
),所以style_path
将会扩展为"%{$(tput sgr0)%}%{${tput setaf 64%}"
,这两个变量已经被转义了 - 转义 '更高级' 的变量不会有任何好处,但也不会有坏处 :) - simont