%F 是什么意思,我怎样才能停止它的意思?

And*_*cey 3 zsh rxvt

在 rxvt-clone 上(我正在使用,rxvt-unicode但它似乎也发生在普通的、旧的rxvt)上,字符序列%F似乎具有某种特殊含义(就像其他一些,例如%S)。特别是,我得到以下信息:

% date +%F          
38;5;0m2011-04-02
% date +%F--%H.%M.%S
38;5;0m--.Hostname.2011-04-02--22.25.59
Run Code Online (Sandbox Code Playgroud)

之后的文字m呈深黑色。由于我的配色方案(深蓝色圆点背景上的紫红色文本),这几乎无法阅读。

这是什么,更重要的是,我如何让它停止?

为了说明为什么它特别烦人,我的讲座文件将日期作为其名称的一部分。因此,能够编写非常方便:

xelatex lecture.beamer.$(date +%F).tex
Run Code Online (Sandbox Code Playgroud)

因为我可以将它存储在我的历史记录中,并用一些明智的 TAB 来回忆它。然而,随后的输出与更白的苍白阴影完全相反,因此很难看出是否有错误。

如果它有所作为,我的外壳是zsh.

Mik*_*kel 5

在您的评论之一中,您提到 using zshwith 一个preexec调用print -P $2.

zsh,print -P接受这些格式字符:

  • %F 表示设置前景色
  • %S 表示设置突出属性

有关完整列表,请参阅zsh 提示扩展

因此,最好-P从对printin的调用中删除该标志preexec

获得相同效果的一种方法:

settitle() {
    printf "%b%s%b" "\033]0;" "$1" "\007"
}

tildedir() {
    print -Pn "%~" 
}

preexec() {
    settitle "$(tildedir):$2"
}
Run Code Online (Sandbox Code Playgroud)