이탤릭체로 표시하지 않고 하이라이트 검색 패턴을 줄입니다.


23

내 이해에 less따르면 사람은 호출기로 사용 less하고 키워드를 사용하여 키워드를 검색 할 때 기울임 꼴로 키워드를 "강조 표시"합니다. 나는 이것이 실제로 불편하다는 것을 알았습니다 set hlsearch. 따라서 찾은 패턴이 다른 배경을 가진 vim과 같은 것으로 변경하고 싶습니다 .

실행을 시도했지만 man -P vim systemd오류 상태 1로 종료되었으므로에 붙어있는 것처럼 보입니다 less.

내가 man less그 도움 을 찾을 수 없었 습니다 (대신 나는 그 옵션 -G이 이탤릭체보다 더 나쁜 모든 것을 강조 표시하지 않을 것임을 알았습니다 ).

매뉴얼 페이지에서 검색 강조 표시 (배경색 변경)를 달성하는 방법을 아는 사람이 있습니까?

참고로 우분투 14.10을 실행합니다.

나는이 질문 을 보았을 때 같은 것에 대해 묻는 것처럼 보이지만 어떻게 작동하는지 잘 모르겠습니다 ( LESS_TERMCAP_so). lessman 페이지는이 문제를 언급하지 않습니다. (이 솔루션으로 이상한 결과를 얻습니다)


그것은 그 줄을 ~/.bashrc파일 에 넣는 것을 의미 합니다. export LESS_TERMCAP_so=$'\E[30;43m'이 답변도 참조하십시오 unix.stackexchange.com/questions/38634/…
iyrin

1
때로는 man man | vim -vim 구성, 키 및 기능을 활용하기 위해 사용 합니다
JJoao

이것에 대한 해결책을 찾았습니까? 한 컴퓨터에서 똑같은 문제가 발생하여 차이점이 무엇인지 알 수 없습니다. 위 LESS_TERMCAP_so변수는 전체 파일을 주황색 배경으로
바꿉니다

나는 아직도 이것으로 어려움을 겪고있다
sgp667

답변:


16

수퍼 유저에서 답변을 찾았습니다. /superuser/566082/less-doesnt-highlight-search

TERM 설정과 관련이있는 것 같습니다. 예를 들어, 일반 그놈 터미널 창에서 강조 표시가 적어지면 (흰색 배경 강조 표시), tmux에있을 때는 기울임 꼴이 표시됩니다. 차이점은 tmux에서는 TERM이 "screen"으로 설정되어 있고 그렇지 않은 경우 "xterm-256color"로 설정되어 있다는 것입니다. tmux 창에서 "TERM = xterm-256color"를 설정하면 덜 강조 표시가 배경 강조 표시로 돌아갑니다.


나는 이미이 질문에 대해 잊어 버렸지 만 이것은 흥미로운 소식입니다. 컴퓨터에 손을 대 자마자 이것을 테스트 할 것입니다!
sgp667

1
다른 응용 프로그램은 WeeChat과 같이 tmux 내에있을 때 TERM이 screen *으로 설정되어 있기 때문에 이는 실용적이지 않은 솔루션입니다. tmux에서 screen *으로 설정하지 않으면 WeeChat에 이상한 렌더링 문제가 있습니다.
블레인 Lafreniere

나는 tmux <2.0에 문제가 있었고 tmux v2 이후에는 문제가 없다고 언급했다.
artfulrobot 2012 년

큰 발견. 나는 지금이 set -g default-terminal "xterm-256color"내에서 ~ / .tmux.conf 내 CentOS는 7 상자 (및 기타).
sshow

screen-256color존재 하는지 확인하십시오 : try ls /usr/share/terminfo/s/.
aDroid

8

언급 LESS_TERMCAP_so이 불완전했습니다. 이는 termcap so(스탠드 아웃) 기능 을 재정의하는 데 사용되는 특수 환경 변수 입니다. 이 기능을 사용하려면 se(스탠드 엔드) 기능도 제공해야합니다.

의 terminfo (5) 매뉴얼 페이지는 terminfo의 이러한 기능의 개요 (smso / rmso)과 TERMCAP (그래서 / SE) 이름을 제공합니다 :

   enter_standout_mode           smso       so        begin standout mode
   exit_standout_mode            rmso       se        exit standout mode  

강조 표시 에 대한 섹션은 다음을 설명합니다.

터미널에 하나 이상의 종류의 디스플레이 속성이있는 경우 여러 가지 다른 방식으로 표현할 수 있습니다. 당신은 하나의 표시 양식을 선택해야합니다 뛰어난 좋은, 높은 콘트라스트를 표현, 모드, 쉬운 - 온 - 더 - 눈, 오류 메시지 및 기타 관심 게터을 강조하기위한 형식입니다. (선택 사항이있는 경우 반전 비디오 + 반광이 양호하거나 비디오 단독 반전이 좋습니다.) 스탠드 아웃 모드를 시작하고 종료하는 시퀀스는 각각 smso 및 로 지정됩니다 rmso.

당신이 색상을 사용하려면 뛰어난 , 당신은 해당 제공해야 LESS_TERMCAP_se하는 리셋 색상. 다른 이유 (예 : groff의 SGR 색상 기능 사용)로 인해 매뉴얼 페이지에서 색상을 사용하지 않는 한 상대적으로 간단합니다.

의견에서 제안 된 가치를 가정 :

export LESS_TERMCAP_so=$'\E[30;43m'

다음을 사용하여 대부분의 터미널에서 재설정 할 수 있습니다.

export LESS_TERMCAP_se=$'\E[39;49m'

그런데 이탤릭체 의 이유 는 GNU에 대한 터미널 설명이 이탤릭체screen대한 표준 이스케이프 시퀀스를 고유 한 뛰어난 스탠드 / 스탠드 기능으로 사용하기 때문입니다. 그 중 일부는 터미널 데이터베이스 항목 에서 설명 합니다 .


이것은 실제로 나를 위해 일한 첫 번째 솔루션이었습니다 (Mac의 tmux에서). 위의 내보내기 라인을 모두 bash 구성 파일에 추가하십시오.
Marlun

그러나 모든 환경 변수를보기 위해 "내보내기"를 쓰면이 줄이 강조 표시된 후 모든 것이 강조 표시되고 터미널이 계속 강조 표시되므로 닫고 새 것을 시작해야합니다.
Marlun

그런 경우 특정 변수가 필요한 프로그램을 호출하는 스크립트에 변수를 넣습니다. 변경된 변수는 스크립트 내에서만 적용됩니다.
토마스 디키

export | less해결 방법으로도 작동
Marlun

4

ESCu검색 less후 검색 강조 표시를 끄려면 누르십시오 . 새 검색은 다시 검색을 설정하므로 세션 적중에 대한 검색 강조 표시를 영구적으로 해제합니다 -G.

또는 LESS='-G'환경에 넣거나 다음 man과 같이 실행하십시오 .

LESS='-G' man less

아이러니하게도 이것은 less맨 페이지에 모두 설명되어 있습니다 ...

다음과 같은 환경에 다음을 넣을 수도 있습니다 .bash_profile.

export MANPAGER='less -G'

내 질문에서 설명했듯이 그것을 완전히 바꾸고 싶지 않고 화면에 표시되는 방식을 변경하고 싶습니다. 내 질문은 누군가 나를 위해 그것을 편집 한 박테리아를 오도하는 것일 수 있습니다.
sgp667

1

tmux의 경우 tmux -256color로 설정 TERM했습니다 . 다른 좋은 점들 중에서 이것은 "일반적인"반전 강조 표시가 적습니다 . 페도라 또는 cygwin과 같은 현대적인 것을 사용할 때 잘 작동합니다.

$ cat ~/.tmux.conf
⋮
set-option -g default-terminal tmux-256color

그러나 Centos 의 ncurses 패키지에는 두 가지 tmux 정의 ( tmuxtmux-256color )가 없습니다. 나는 페도라에서 아주 쉽게 수입했습니다. 약간의 주름은 Centos의 ncurses 가 페도라의 terminfo 파일을 직접 이해하기에는 너무 오래 되었다는 것 입니다.

페도라에서 :

$ infocmp tmux256-color >temp.txt

Centos에서 :

$ scp fedora-machine:temp.txt .
$ tic temp.txt

그런 다음 tmux 내부 :

$ TERM=tmux-256-color man tmux

결과!

참고로 tic 명령은 컴파일 된 터미널 설명을 개인 terminfo 데이터베이스 ~/.terminfo/t/tmux-256color(이 경우)에 넣습니다 . 원하는 경우 전역 데이터베이스로 자유롭게 이동하십시오.

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.