
내 생각엔 다음과 같은 오류가 발생한 것 같아이 질문. 내 프롬프트는
PROMPT=$'\n%F{cyan}================================%f\n[%*] [%F{yellow}%?%f]\n[%F{cyan}%n@%m%f]\n[%F{green}%~%f]'
예를 들어 다음을 실행했습니다.
================================
[2022-08-23 14:02:43] [0]
[jyxjjj@DESMG-MacBookPro]
[~]$ php media app:build
키보드 위쪽 화살표를 누른 다음 아래쪽 화살표를 누르면 다음이 표시됩니다.
================================
[2022-08-23 14:02:43] [0]
[jyxjjj@DESMG-MacBookPro]
[~]$ php media app:buphp media app:build
나는 결함 샘플을 제공하지 않았다고 확신합니다. 그냥 다음과 같이 표시됩니다.
php media app:buphp media app:build
다음과 같이 올바르게 실행됩니다.
php media app:build
도.
즉, 내가 본 것이 무엇이든 올바른 명령을 실행한다는 의미입니다.
그래서 그것은 단지 표시 오류입니다.
그런 다음 모든 방법을 테스트했으며 PS1/PROMPT 내보내기만 제거하면 이 오류가 해결됩니다.
그래서 내 PS1이 이 오류를 일으킨 것 같습니다.
어떻게 고치나요?
나는 그 사람의 대답을 이해하지 못했습니다.이 질문.
그래서 다시 묻고 싶습니다.
너무 미안 해요.
추가:
내 zshrc의 일부:
autoload -U colors && colors
setopt histignoredups
setopt histignorealldups
setopt appendhistory
setopt sharehistory
setopt promptsubst
그 다음에:
$ echo $PS1
%F{cyan}================================%f
[%*] [%F{yellow}%?%f]
[%F{cyan}%n@%m%f]
[%F{green}%~%f]$(__git_ps1)$
$ echo $PROMPT
%F{cyan}================================%f
[%*] [%F{yellow}%?%f]
[%F{cyan}%n@%m%f]
[%F{green}%~%f]$(__git_ps1)$
$ echo $PROMPT_COMMAND
(nothing)
$ which PROMPT_COMMAND
PROMPT_COMMAND not found
$ which prompt_command
prompt_command not found
나는 테스트했다
PROMPT=$'\[\n\]\[%F{cyan}\]================================\[%f\n\][\[%*\]] [\[%F{yellow}\]%?\[%f\]]\n[\[%F{cyan}\]%n@%m\[%f\]]\n[\[%F{green}\]%~\[%f\]]'
그리고 그것은 [
다음을 인쇄했습니다.]
나는 테스트했다
PS1='\n\[\e[36m\]================================\[\e[0m\]\n[\t] [\[\e[36m\]\u@\h\[\e[0m\]]\n[\[\e[32m\]\w\[\e[0m\]]'
bash에서 작동합니다.
답변1
나는 스스로 답을 찾았습니다.
zsh 매뉴얼에서 프롬프트 확장, 단순 프롬프트 이스케이프,섹션 13.2.5 - 시각 효과.
%{...%}
문자열을 리터럴 이스케이프 시퀀스로 포함합니다. 중괄호 안의 문자열은 커서 위치를 변경해서는 안 됩니다. […]
내 코드에는 이것들 %{
과 %}
. 그들은 zsh의 대응인 것 같습니다.\[
그리고 \]
배쉬에서.