zshプロンプトの醜いハッキングは奇妙なオートコンプリートを引き起こしました。

zshプロンプトの醜いハッキングは奇妙なオートコンプリートを引き起こしました。

現在、.zshrcには次の行があります。

export PROMPT=$(printf "\e[38;5;6m")%m$(printf "\e[m")%d-%h:" "

ホスト名は青色で表示され、履歴と現在の作業ディレクトリは通常の端末色で表示されます。どのように説明するのかわかりませんが、最初の文字を指定して複数のファイル名が一致すると、奇妙で​​予期しないことが発生します。説明するのは難しいです。一度試してみてください。

スクリーンショット:

仕上げる前に:
仕上げる前に

Tab可能な完了を表示するにはクリックしてください。終わった後

ベストアンサー1

メニューの完成を表示し、コマンドラインを編集できるようにするため、アイテムを印刷し、アイテムを消去または再作成する必要があるというzshのアイデアを完全に無効にしました。これは、先端を過度に複雑にするためです。

  • 文字列リテラルを単語に入れないでくださいprintf
  • 色を変更するためにハードワイヤードCSI制御シーケンスを使用しないでください。

私が言ったようにhttps://superuser.com/a/695350/38062、Zシェルはこのようなことを知っており、指示なしにシーケンスを印刷しません。また、ハードワイヤなしで%F{green}正しいエスケープシーケンスを計算できます。terminfo

PROMPT="%B%F{青}%m%f%b%d-%h: "

追加読書

おすすめ記事