Fedora 38 终端出现故障

Fedora 38 终端出现故障

我最近在 Fedora 38 中从 bash 切换到 zsh。
我已经安装了 oh my zsh 并拥有以下插件。
plugins=(git fzf tig zsh-autosuggestions)

我的终端表现得很奇怪。如果我up按下键盘,它的一部分就会消失,并且当我用鼠标中键粘贴内容时,它会出现奇怪的故障。

此外,当使用退格键删除命令时,它的一部分将保留在终端上,但不会影响我输入的新命令。(参见图 2 我无法删除该命令,oc lo但它的作用就好像我在提示符的开头一样所以ls --help运行成功)

我下面有一些屏幕截图,显示了一些奇怪的故障。

就上下文而言,我使用术语作为我的主终端,但我在使用 Konsole 时也遇到了这些问题。

这是 oh my zsh 常见的问题吗?

添加了不必要的空间oclols --帮助图片

我的主要提示定义为:

$ typeset PROMPT
PROMPT='[%n]$fg[blue][%m]%{$fg[white]%}$(git_custom_status)[%~% ]%{$reset_color%}%B$%b '

答案1

在你的:

 PROMPT='[%n]$fg[blue][%m]%{$fg[white]%}$(git_custom_status)[%~% ]%{$reset_color%}%B$%b '

虽然$fg[white]$reset_color大概是告诉终端将前景色更改为白色并重置由colors可自动加载函数定义的颜色的转义序列%{...%},以告诉 zsh 的行编辑器这些字符显示的宽度为零,但事实并非如此的$fg[blue]

$ autoload colors
$ colors
$ echo $#fg[blue]
5

这是一个 5 个字符的长序列,但当发送到终端时,它仅更改前景色,并且不会将光标向右移动五列,但由于您没有告诉它,行编辑器会误解例如,当您尝试移动光标时,光标应该在哪里显示。

在这里,虽然你可以使用%{...%}围绕这$fg[blue]一点,在快速扩展中你也不需要它。迅速扩张更改前景色和背景色的特殊指令: %F{colour}and %K{colour}(and%f%k重置为默认值),所以它应该是:

PROMPT='[%n]%F{blue}[%m]%F{white}$(git_custom_status)[%~]%f%B$%b '

这还假设该promptsubst选项已启用并且该git_custom_status命令输出的内容是有效的提示字符串。

相关内容