명령이 너무 길면 명령 시작 부분에 개행 문자를 삽입하십시오.

명령이 너무 길면 명령 시작 부분에 개행 문자를 삽입하십시오.

이와 유사질문, 그러나 프롬프트 끝에 새 줄을 추가하는 대신 긴 명령의 시작 부분에 새 줄을 추가합니다(명령이 명령줄 창의 오른쪽에 도달할 때).

나는 그림과 같이 물고기에게서 이와 같은 행동을 본다고 생각합니다.동영상. 프롬프트가 포함된 줄에만 개행 문자를 추가합니다.

v5.8Linux( )에서 kernel: v5.10zsh( )를 사용하고 있습니다 .

편집하다:

zsh 또는 bash에서 이 동작을 어떻게 달성할 수 있나요?

답변1

에서는 zsh다음을 수행할 수 있습니다.

zle-line-pre-redraw() {
  (( BUFFERLINES == 1 + ${#BUFFER//[^$'\n']} )) || PREDISPLAY=$'\n'
}
zle -N zle-line-pre-redraw

표시할 렌더 버퍼의 줄 수가 개행 수에 1을 더한 것보다 큰 경우(최소 한 줄이 오버플로되거나 PREDISPLAY가 해당 버퍼의 개행으로 설정되었음을 의미) 이전 개행이 추가됩니다.

관련 정보