【问题标题】:Terminal command line disappears after typing a bit输入一点后终端命令行消失
【发布时间】:2022-12-11 10:45:28
【问题描述】:

我正在使用 macOS Big Sur 版本 11.4,并且刚刚更新了我的 .zshrc 文件以在我的终端命令行上显示 git 分支位置。

.zshrc 文件包含以下内容。我不确定之前有什么。我不小心使用 touch ~/.zshrc 创建了 .zshrc 文件,而没有检查该文件是否已经存在。也许这就是事情搞砸的地方。

function parse_git_branch() {
    git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
}

COLOR_DEF=$'\e[0m'
COLOR_USR=$'\e[38;5;243m'
COLOR_DIR=$'\e[38;5;197m'
COLOR_GIT=$'\e[38;5;39m'
setopt PROMPT_SUBST
export PROMPT='${COLOR_USR}%n ${COLOR_DIR}%~ ${COLOR_GIT}$(parse_git_branch)${COLOR_DEF} $ '

git 分支显示了,但我注意到当我在命令行上输入超过 28 个字符时,它会消失,如下所示:

我怎样才能解决这个问题?


【问题讨论】:

  • 不移动光标的提示字符串部分应该包含在%{ %}中——参见the manual
  • 对于 git 分支使用 vcs_info 并用更新的 %F%f 扩展替换颜色转义序列可能会更好。更多信息 hereherehere
  • 顺便说一句,touch ~.zshrc 并没有真正影响任何东西。如果文件已经存在,touch只会设置该文件的修改时间戳;它不会改变内容。如果该文件不存在,则 touch 将创建一个新的空文件。

标签: terminal zsh


【解决方案1】:

我能够通过将提示中的每个颜色表达式包装在 %{...%} 中来解决同样的 .zshrc 的换行问题 - 所以对于最后一行:

export PROMPT='%{${COLOR_USR}%}%n %{${COLOR_DIR}%}%~ %{${COLOR_GIT}%}$(parse_git_branch)%{${COLOR_DEF}%} $'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2016-12-12
    • 2011-11-30
    相关资源
    最近更新 更多