`man`이 대소 문자를 구분하도록 강제 할 수 있습니까? 버전에서는 사용 가능한 man 버전입니다. man

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

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

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



답변

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

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

  • 경우 -I효과에, 다음 검색은 대소 문자를 구별하지 않는다 : 중 하나 a또는 A모두에 맞게 사용할 수 있습니다 aA.
  • 경우는 -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


답변

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

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

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


답변

“어쨌든 소문자 xx사용 하도록 소문자를 강제로 적용 해야 man합니까?”

한 가지 방법이 있습니다

man -Tascii manpage |less

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


답변