"man"이 소문자를 구분하여 일치하도록 강제할 수 있나요?

"man"이 소문자를 구분하여 일치하도록 강제할 수 있나요?

매뉴얼 페이지를 검색할 때 대소문자를 구분하지만 대문자만 검색됩니다. 예를 들어 는 x일치 x하고 X와만 X일치합니다 x. 이는 man-dbFedora 파생 제품에서 기본적으로 사용되는 man 버전이며 다른 시스템에서도 사용할 수 있습니다. man man기본 호출기가 환경에 정의되어 있지 less -s않으며 내 것이 바로 그 것이며 less에 대한 별칭이 없다고 말합니다.$LESS$PAGERless

less혼자 부를 때의 행동 이 아닙니다 .

x사용할 때 소문자만 소문자와 일치하도록 강제합니까 ?xman

답변1

사람들은 "Less"라고 부릅니다. 개인 수준에서 유일한 제어는 Less를 호출하는 옵션입니다.

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

  • 유효한 경우 -I검색은 대소문자를 구분하지 않습니다. a또는 를 사용하여 및 을 A일치시킬 수 있습니다 .aA
  • -i유효하지만 유효하지 않은 경우 -I검색은 대소문자를 구분하지만 패턴에 대문자가 포함되지 않은 경우에만 해당됩니다.

Less에 대한 기본 옵션을 설정 하면 -I매뉴얼 페이지 내에서도 모든 검색이 대소문자를 구분하지 않습니다.

Man-db는 환경 변수를 통해 호출기에 추가 옵션을 전달하고 LESSLess는 명령줄 옵션과 동일한 방식으로 해석됩니다. 이 설정은 컴파일 시 하드코딩되며 .로 시작됩니다 -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

답변2

이는 less' -i(명령줄 스위치) "대소문자를 구분하지 않는" 모드가 작동하는 방식입니다(즉, 여전히 대문자를 구분합니다). Gilles가 지적했듯이 이것을 사용하면 man-db로 컴파일됩니다.

+-iGilles의 답변 WRT 별칭 또는 사용자 정의 설정에 표시된 방법 외에도 MANLESS매뉴얼 페이지가 열린 후 엄격한 대소문자 일치를 전환할 수도 있습니다 -i(이렇게 하면 스위치가 켜지고 꺼집니다). "중요" 메시지를 검색하면 이제 및 만 x일치합니다 .xXX

Man-db 에는 스위치 man가 있지만 -I이는 매뉴얼 페이지 검색에 작동합니다. 예를 들어 man BASH기본적으로 bash 매뉴얼 페이지를 제공하지만 man -I BASH그 반대는 아닙니다.

답변3

x" 를 사용할 때 소문자만 강제로 일치시키나요 ?"xman

이것은 한 가지 방법입니다

man -Tascii manpage |less

자세한 내용은 모르겠지만 roff처리가 태그 지정을 수행하고 있으며 호출기는 태그가 지정된 텍스트를 표시하고 있음에도 태그가 지정되지 않은 텍스트와 일치하는 것 같습니다.
매우 혼란스럽습니다. nroff전문가가 파이프라인을 설명할 수 있기를 바랍니다.

관련 정보