diff 명령의 출력을 Unix의 매뉴얼 페이지처럼 보이게 하려면 어떻게 해야 합니까? 더 읽거나 뒤로 읽으려면 어디에서 "b" 또는 "f"를 누르나요?

diff 명령의 출력을 Unix의 매뉴얼 페이지처럼 보이게 하려면 어떻게 해야 합니까? 더 읽거나 뒤로 읽으려면 어디에서 "b" 또는 "f"를 누르나요?

man 명령을 사용하여 매뉴얼(예: man ls)을 읽으면 "f"를 눌러 아래로, "b"를 눌러 위로, 위에서 아래로 읽을 수 있는 페이지 출력이 표시됩니다(위에서 이동한다고 가정). (왼쪽에서 오른쪽으로 읽음)을 선택하고 "q"를 눌러 종료하세요. 때로는 긴 차이점 목록을 읽고 싶기 때문에 diff의 출력이 동일한 방식으로 작동하기를 원하지만 출력의 시작 부분을 읽으려면 터미널에서 위로 스크롤해야 합니다.

Git diff 명령을 사용하면 이 기능이 마음에 들지만(예 git diff: ) 항상 모든 파일을 버전 제어할 여유가 있는 것은 아닙니다.

내가 생각할 수 있는 최선의 방법은 diff 명령의 출력을 다른 명령으로 파이프하는 것이지만 어느 명령인지는 잘 모르겠습니다. 누구든지 도와줄 수 있나요? 매뉴얼 페이지와 같이 제공된 이 출력 동작에는 나중에 참조할 수 있는 이름이 있습니까?

답변1

이를 "페이지 출력" 또는 (다소 부정확하게는) "페이지 출력"이라고 합니다.

... 맨 페이지 출력 양식을 생성하는 데 사용된 파이프의 출력을 기반으로 man선호하는 페이저 셸 명령(환경 변수로 이름 지정)을 호출하여 이 작업을 수행합니다 . PAGER호출기 명령을 지정하지 않으면 기본값으로 되돌아갑니다. 초기 Unices에서는 기본 호출기 프로그램이 man기본 호출기 명령으로 알려진 고정 옵션과 함께 호출되었습니다 pg. 귀하의 시스템에서는 more또는 일 수 있습니다 less. 일부 man명령은 pager 명령에 대한 다른 환경 변수도 확인합니다.

지금 하고 있는 일을 수행하여 이를 수행하십시오 man. 즉, 호출기 프로그램의 표준 입력에 보고 싶은 출력을 파이프하는 것입니다.

당신은 유닉스에 관한 좋은 책을 사야 합니다. 이것을 설명하는 사람들이 꽤 있는데, 이는 시스템의 아주 기본적인 기능입니다. 오늘 Google Books에서 간단히 검색해 본 결과 pager unix more이 ​​문제를 다룬 책이 100권 이상 발견되었습니다. (나는 백까지 세는 것을 멈췄다.)

답변2

man그리고 프로그램 보조를 호출합니다 git diff.휴대용 소형 무선 호출기. 최신 시스템에서는 기본 호출기를 호출합니다.less. 수십 년 전, 첫 번째 호출기는 more페이지를 표시한 다음 "자세히"를 보기 위해 키를 누르기를 기다렸기 때문에 "페이저"라고 불렸습니다. 그런 다음 가 오고 less, 이는 또한 당신을 되돌아가게 만들고(말하자면 더 적게 보게 만들고) "적은 것이 더 많다"(더 많은 것보다)라는 말을 확인시켜 줍니다.

git diff몇 가지 예외가 있습니다. 유틸리티 diff, cvs diff하위 명령, svn diff하위 명령 등은 차이를 계산하고 인쇄하는 작업만 수행합니다. 차이점을 페이징하려면 명시적으로 페이저를 호출해야 합니다.

diff file.old file.new | less

pager 를 호출하는 다른 명령과 다른 pager를 사용하려는 경우 man환경 변수를 git diff설정할 수 있습니다 PAGER(예: 파일에 저장) ~/.profile.

export PAGER=most

diff자동 호출기 호출과 같은 명령을 실행할 수 없습니다 . 그러나 래퍼 함수를 ​​만들 수 있습니다(예: ~/.zshrczsh 또는 bash의 경우 쉘 초기화 파일에 넣기 ~/.bashrc).

diff () {
  if [ -t 1]; then             # If standard output is a terminal
    command "$@" | less        #    then pipe through less
  else                         # else
    command "$@"               #     run the command (and return its exit status)
  fi
}

경고: 이와 같은 기능은 때때로 방해가 될 수 있습니다. 호출기에 대한 한 문자 별칭을 만들 수도 있습니다.

alias p=less P=less

따라서 명령 출력을 페이지별로 보려면 diff … |p또는 를 입력합니다.diff … |P

답변3

less 명령을 사용하는 것은 어떻습니까... EX:

 ls -l | less -CM

답변4

vim에서 diff 내용을 볼 수 있습니다.

git diff | view -

확신하는:

diff -u a.txt b.txt | view -

즐기다!

관련 정보