ksh 프롬프트는 개행 문자가 있는 함수로 정의됩니다.

ksh 프롬프트는 개행 문자가 있는 함수로 정의됩니다.

나는 멋진 git 인식 ksh 프롬프트 함수를 직접 작성했습니다. 여기서는 여러분이 내 문제를 부풀리지 않고 볼 수 있도록 최소한의 실제 예제를 제공합니다.

#!/bin/ksh

function _test_prompt
{
    prompt="`whoami`@`hostname` > "
    [[ $(id -u) -eq 0 ]] && prompt="ROOT@`hostname` # "

    print "\n\w"
    print -n "$prompt"
}

export readonly PS1='$(_test_prompt)'

나는 내 것부터 시작했다 .kshrc.

문제는 더 길고 예쁜 git 로그를 보려고 할 때 프롬프트의 줄 바꿈이 출력 상단을 잘린다는 것입니다. 예를 들어

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s'

다음과 같이 표시됨

* f0490d0 - Make sure fb is big enough to handle reconfigure   (3 years, 10 months ago) <Keith Packard>
* 7caa6ce - Add xrandr-auto sample script   (3 years, 10 months ago) <Keith Packard>
* f59c924 - (tag: v0.2) Update to version 0.2   (7 years ago) <Keith Packard>
* a6c8969 - Add --auto switch, a shortcut for --config "xrandr --auto"   (7 years ago) <Keith Packard>
* d45135b - Add manual   (7 years ago) <Keith Packard>
* ef165dc - add .gitignore   (7 years ago) <Keith Packard>
* d927ec1 - Autotool   (7 years ago) <Keith Packard>
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~

~/git-misc/x-on-resize
user@hostname >

그리고 출력의 첫 번째 줄은 페이지 위로 한 번만 볼 수 있습니다.

~/git-misc/x-on-resize
user@hostname > git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s'
* 617e5ed - (HEAD -> master, origin/master, origin/HEAD) Use mode ID instead of mode for autoconfig   (3 years, 10 months ago) <Keith Packard>
* f0490d0 - Make sure fb is big enough to handle reconfigure   (3 years, 10 months ago) <Keith Packard>

(이전 페이지 맨 아래에 있던 내용을 잘라냈습니다.)

상상할 수 있듯이 이는 매우 짜증나는 일입니다. 이 경우 실제로 가장 최근 커밋을 잃어버렸고 이를 찾으려면 위로 스크롤해야 했습니다.

이는 로그 출력이 한 화면에 맞는 경우에만 발생합니다(그렇지 않으면 축소됩니다).

당신의 도움을 주셔서 감사합니다!

답변1

늘 그렇듯, 실제로 시간을 내어 질문한 후 문제를 해결했습니다.

방금 pager.loggit config 변수를 less -RFc; 로 설정했는데 -c관련 스위치는 다음과 같습니다. less화면을 아래에서 위로 다시 그리는 것이지 그 반대는 아닙니다.

분명히 이것은 실제로 ksh 문제가 아닙니다. 나는 매우 미안 해요.

관련 정보