명령을 중단하기 위해 ^C를 입력하면 "^C"가 표시됩니다.

명령을 중단하기 위해 ^C를 입력하면 "^C"가 표시됩니다.

Bash 4.4(Bash 3.2는 아님)에서 명령을 입력한 다음 중단하려면 쉘이 새 프롬프트 행을 표시하기 전에 커서에 텍스트를 삽입한다는 것을 Ctrl알았 C습니다 ^C. 동일한 작업을 수행하도록 zsh를 구성하는 방법이 있습니까?

(이것은 다소 관련이 있습니다.이 문제, 회전 방법을 묻는 메시지입니다.떠나다이 질문은 Bash에 관한 것이지만 이 동작입니다.이 답변또 다른 질문은 명령줄에 특수 문자가 나타날 때 zle이 강조 표시하도록 하는 방법을 보여 주지만 명령줄에 0x03 바이트 텍스트를 삽입하지 않고 제어 문자를 입력할 때 일부 텍스트를 표시하려고 합니다. )

답변1

이것은 최소한 간단한 경우에는 작동합니다.

precmd () {
  trap 'print -P "%B%F{red}^C%f%b"; zle send-break' INT
}
preexec () {
  trap - INT
}

나는 완료하는 데 오랜 시간이 걸리는 기능과 같은 "어려운" 상황에서 그것이 어떻게 작동하는지 탐구하지 않았습니다.

관련 정보