위치를 덜 표시하는 방법은 백분율로 위치를 나타냅니다

StackOverflow https://stackoverflow.com/questions/1049350

  •  20-08-2019
  •  | 
  •  

문제

예를 들어 실행할 때도 백분율 부호를 표시하는 것을 목표로합니다.

man emacs

당신이 그것을 실행하면, 당신은 예를 들어 '바이트 3300'을 얻습니다.

알렉스의 대답 우리는 별도의 쉘 기능을 만들어야한다고 제안합니다.

man "$1"| col -b > /tmp/manual
less /tmp/manual

여기서 $ 1은 첫 번째 매개 변수를 나타냅니다.


새로운 문제는 . Crux Move에 대한 Yuliy에게 감사합니다!

도움이 되었습니까?

해결책

해결책

덜 수동 버전 니타 톰의 대답결합 Alex Marteilli의 대답잘 작동합니다. 통과하십시오 +Gg 옵션 less 호출기 옵션을 통해.

예를 들어 시도하십시오

man -P 'less -s -M +Gg' man

이것은 퍼팅을 통해 영구적으로 영향을 줄 수 있습니다

export MANPAGER='less -s -M +Gg'

쉘 구성 파일 중 하나에서 (위의 구문은 bash 및 zsh 용입니다). 예를 들어 이제 man man 원하는대로 비율을 표시합니다!

경고

당신은해야합니다 ~ 아니다+Gg 에서 LESS 변하기 쉬운! 예를 들어,하고 있습니다

export LESS='-M +Gg'

매우 큰 파일을 읽을 때 문제가 발생합니다. 예를 들어,

yes | LESS='-M +Gg' less

잘 작동하지 않습니다 ...

설명

다른 답변이 설명했듯이 문제는 less 파일의 시간을 알기 전까지 파일에 어떤 백분율이 있는지 말할 수 없으며 파이프에서 읽을 때 기본적으로 파일 끝까지 읽지 않습니다.

로부터 OPTIONS 섹션 man less:

+      If  a command line option begins with +, the remainder of that
       option is taken to be an initial command to less.   For  exam‐
       ple, +G tells less to start at the end of the file rather than
       the beginning, and +/xyz tells it to start at the first occur‐
       rence of "xyz" in the file.  As a special case, +<number> acts
       like +<number>g; that is, it starts the display at the  speci‐
       fied  line  number (however, see the caveat under the "g" com‐
       mand above).  If the option starts with ++, the  initial  com‐
       mand  applies  to  every file being viewed, not just the first
       one.  The + command described previously may also be  used  to
       set (or change) an initial command for every file.

그만큼 g "파일의 시작으로 돌아 가기"를 의미합니다.

로부터 man man:

-P pager, --pager=pager
       Specify which output pager to use.  By default, man uses pager
       -s.  This option overrides the $MANPAGER environment variable,
       which in turn overrides the $PAGER environment  variable.   It
       is not used in conjunction with -f or -k.

       The value may be a simple command name or a command with argu‐
       ments, and may use shell quoting (backslashes, single  quotes,
       or  double  quotes).  It may not use pipes to connect multiple
       commands; if you need that, use a wrapper  script,  which  may
       take  the file to display either as an argument or on standard
       input.

다른 팁

export LESS="-m"

보다 일반적으로 LESS 환경 변수는 실행 중에 명시 적으로 통과 할 수있는 명령 줄 플래그와 동등한 옵션을 포함 할 수 있습니다. less - 여기 -m 더 풍성하게 프롬프트하도록 지시하는 옵션 (요청대로 비율 포함). 각각을 $. 훨씬 더 많은 정보는 참조하십시오 Less 's Manpage.

편집하다: 물론 (파일에서 부르지 않고 배관을 섭취하는 경우)는 물론 가능합니다. 알다 그것이 표시되는 총 크기, 즉 물론 %를 표시 할 수는 없습니다.이 경우에는 몇 가지 정보가 거의없는 것, 예를 들어 지금까지 얼마나 많은 텍스트가 표시된지를 자극합니다. 예를 들어, man 사용합니다 less 그런 식으로 배관으로.

따라서 특정 요구가 man (전화시기보다는 less 파일에 직접) "대체 호출기"(환경 변수 MANPAGER 또는 스위치 -Pman 명령 줄) 저장하는 간단한 스크립트입니다. man임시 파일로의 출력을 한 다음 사용합니다. less 후자. (더 깊은 트릭 등을 재생하지 않는 한 사람의 "색상화"를 잃을 수 있습니다. 마찬가지로 "Preformat Pages"옵션을 사용할 수도 있습니다. man 그리고 그러한 사전 형식화 된 페이지를 실행할 템 파일로 압축하지 않음 less, 등, 그러나 이것은 다소 복잡한 "간단한 스크립트"가되기 시작합니다. ;-).

Linux에서 나는 단지 Man Page의 끝으로갑니다. 옮기다+G 그런 다음 처음으로 돌아갑니다 g. (또는 이전 위치로 돌아갈 수 있습니다. '').

파일을 통해 얼마나 멀리 떨어져있는 비율을 표시하기에 충분한 정보가 있습니다. (입력해야 할 수도 있습니다 -M 긴 프롬프트를 얻으려면.)

약간의 해킹이지만 두 개의 키 프레스입니다. 이것이 OS/X에서 작동하는지 확실하지 않습니다.

Alex Martelli의 답변에 추가하려면 :

런타임시 ( -포함)를 입력 한 다음 Enter 키를 입력하여 명령 행 매개 변수를 더 적게 전달할 수도 있습니다. 그래서 당신은 그냥 입력 할 수 있습니다

-m<Enter>

긴 프롬프트를 전환하기 위해 덜 달리는 달리기로.

이것은 런타임 (예 : 라인 접이식 켜기/끄기)에서 변경 해야하는 옵션에 특히 유용합니다.

라이브와 함께 less 내가 사용한 런타임 -M.

그게 "-M입력하다" 에서 : 덜 달리기로 프롬프트.

정말 큰 버퍼로 나는 또한 그들의 크기를 "발견"하기 위해 끝까지 가야했다. 그리고 뒤로 .


참고 : 나는 주석으로 게시했을 것입니다. @sleske대답이지만 마지막으로 기억하는 것은 댓글이 지원되지 않습니다. <kbd>Keyboard<kbd> 태그.

나는 내 환경에 이것을 가지고있다. 인쇄됩니다 <filename> - Lines X-Y of Z 맨 아래에, 또는 적어도 그 정보의 많은 것보다.

export LESS='-P?f%f - .?ltLine?lbs. %lt?lb-%lb.?L of %L.:?pt%pt\%:?btByte %bt:-...'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top