파일이 화면보다 짧을 때 less --quit-if-one-screen --no-init +G가 화면을 빈 줄로 채우는 것을 방지하는 방법은 무엇입니까?

파일이 화면보다 짧을 때 less --quit-if-one-screen --no-init +G가 화면을 빈 줄로 채우는 것을 방지하는 방법은 무엇입니까?

나는 사용한다

less -XFR +G

페이지 매김 git log의 일부 변형 및네 가지 옵션 모두 중요합니다..

내가 싫어하는 점은 ~로그/파일이 화면보다 짧을 때 화면이 빈 줄(마커 포함)로 채워지는 것입니다.

재현하기 위해 찾을 수 있는 더 짧은 단계는 다음과 같습니다.

echo -e 'one\ntwo\nthree' | less -F +G

파일이 페이지에 맞으면 명령이 마치 존재하지 않는 것처럼 작동하기를 원합니다.

답변1

less 자체로는 이 작업을 수행할 수 있는 방법이 없는 것 같습니다. 스크립트를 사용하여 cat과 less 사이에서 결정할 수 있습니다(향상된https://superuser.com/a/215307):

maybeless() {
  if [[ "$1" ]]; then
    f="$1"
  else
    f="$(mktemp)"
    cat > "$f"
  fi
  < <(wc -lc < "$f") read -r lines chars
  if (( "$lines" < ${LINES:-20} && "$chars" < ${COLUMNS:-80} * ${LINES:-20} )); then
    cat "$f"
  else
    less -XR +G "$f"
  fi
  if [[ -z "$1" ]]; then
    rm "$f"
  fi
}

관련 정보