`man`이 대소 문자를 구분하도록 강제 할 수 있습니까?


10

맨 페이지를 검색 할 때 대소 문자를 구분하지만 대문자 만 검색합니다. 예를 들어 x일치 x하고 X반면 X일치 x합니다. 이것은 man-db기본적으로 페도라 파생 시스템에서 사용되며 다른 버전에서는 사용 가능한 man 버전입니다. man man기본 호출기는 less -s입니다. $LESS환경에 정의되어 있지 않으며 my $PAGERis just less이며 별명이 없습니다.

이것은 less스스로 호출 할 때의 동작이 아닙니다 .

어쨌든 x소문자 x를 사용할 때 소문자를 강제로 적용 해야 man합니까?


1
기본값은 대소 문자를 구분합니다. LESS환경 변수에 포함 된 것처럼 들립니다 -i.
— manatwork

1
어떤 버전 less이 있습니까? 에 대한 별칭이 설정되어 less있습니까? LESS 또는 LESSOPEN 환경 변수가 설정되어 있습니까? 기본적으로 일치 하는 less항목 x만 검색 x하면 안됩니다.X
— bsd

우리는 이미이 Q를하지 않았습니까? 나는 Hauke가 그것을 물었다, 나는 그것을 찾을 것이다라고 생각한다. .. (5 분 전에 되돌아 온다. unix.stackexchange.com/questions/116395/…
— slm

@ slm, 이것은 나의 첫 번째 반응이기도했지만 질문 소유자 가 그 질문에 참여 했을 때 그가 그것에 대해 알고 있다고 생각합니다.
— manatwork

@manatwork echo $LESS= 아무것도 아닙니다. 참고 그 것이다 없는 경우 insensitve -하지만 그것은 단지 시행한다 감도 WRT 대문자. @bdowning alias | grep less= 아무것도 아닙니다. man그러나 (mandb, btw) 를 통해서만 적용됩니다 . 나는 어딘가에 전에 이것에 대해 읽었다 확신합니다 ...
— goldilocks

답변:


3

남자는 덜 부르고있다. man 레벨에서 유일한 제어는 Less with를 호출 할 옵션을 선택하는 것입니다.

Less의 검색 대 / 소문자 구분은 두 가지 옵션으로 제어됩니다.

  • 경우 -I효과에, 다음 검색은 대소 문자를 구별하지 않는다 : 중 하나 a또는 A모두에 맞게 사용할 수 있습니다 a및 A.
  • 경우는 -i유효하지만 -I, 다음 검색은 대소 문자를 구분하지만, 패턴에는 대문자가없는 경우에만 가능합니다.

-ILess에 기본 옵션을 설정 하면 맨 페이지에서도 모든 검색이 대소 문자를 구분하지 않습니다.

Man-db는 LESS환경 변수 를 통해 추가 옵션을 호출기에 전달 합니다.이 변수는 Less가 명령 줄 옵션과 같은 방식으로 해석됩니다. 설정은 컴파일 타임에 하드 코딩되어 시작됩니다 -i. (값은 "-ix8RmPm%s$PM%s$"Man-db 2.6.2 기준이며 P…$부분은 프롬프트 문자열입니다.)

매뉴얼 페이지의 검색에서 대소 문자를 구분하지 않거나 항상 대소 문자를 구분하지 않으려면 man-db 자체에서이를 구성 할 방법이 없습니다. Man-db가있는 경우 내용을 현재 값 앞에 추가 man하므로 LESS환경 변수 를 조작 하는 별명 또는 랩퍼 스크립트를 작성할 수 있습니다 .

alias man='LESS="$LESS -I" man'

이 -i옵션 을 끄고 맨 페이지에서 기본적으로 검색시 항상 대소 문자를 구분 하려면 :

alias man='LESS="$LESS -+i" man'

환경 변수 LESS를 설정하여 다른 값을 하드 코딩 할 수도 MANLESS있지만 그렇게하면 값으로 man설정 하면 사용자 정의 제목 줄 ( "매뉴얼 페이지 ")과 다른 항목 (특히 굵게 및 밑줄 형식 을 포함해야합니다 ).LESSMANLESSfoo(42)-R


1

이것은 어떻게 less의 -i(명령 줄 스위치) "의 경우를 구분"모드가 작동하는 (즉, 여전히 대문자에 민감하다). Gilles가 지적했듯이 이것을 사용하는 것은 man-db로 컴파일됩니다.

Gilles에서 WRT를 설정하여 별명 +-i또는 사용자 정의 설정에 표시된 방법 외에도 MANLESSman 페이지가 열리면 대소 문자를 엄격하게 전환 할 수 있습니다 -i(스위치를 켜고 끕니다). 당신은 작은 "케이스 검색에서 중요하다"메시지 지금은 볼 x만 일치 x하고 X만 일치합니다 X.

Man-db man에는 -I스위치가 있지만 이것은 man 페이지 검색에 적용됩니다. 예를 들어 기본적으로 man BASHbash 매뉴얼 페이지가 표시되지만 man -I BASH그렇지는 않습니다.


0

"어쨌든 소문자 x만 x사용 하도록 소문자를 강제로 적용 해야 man합니까?"

한 가지 방법이 있습니다

man -Tascii manpage |less

나는 gory 세부 사항을 알지 못하지만 roff처리가 마크 업을 수행 중이며 페이저가 마크 업 된 텍스트를 표시하더라도 마크 업되지 않은 텍스트와 일치하는 것으로 보입니다.
매우 혼란스럽고, nroff전문가가 파이프 라인을 설명 할 수 있기를 바랍니다 .


이것은 GUI 터미널에 엉망을 만듭니다 ( ESC[1m시퀀스 유형 전체 ).
— goldilocks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.