TMUX의 고정 강조 표시


18

urxvt + tmux 를 기본 터미널로 사용하기 시작한 이후 콘솔에서 강조 표시 (역 모드)가 누락 되었습니다. 강조 표시는 기울임 꼴로 대체 되었습니다 (처음에는 매우 멋지 지만) less.

단말 종류가 설정된 상태에서 작업이 적절하다 xterm*(예를 들어,이 프로필 set -g default-terminal "xterm-color"에서 .tmux.conf ). 그러나 일부 단축키는 작동하지 않으며 앱은 터미널의 적절한 형상을 얻을 수 없습니다.이 경우에는 ...

답변:


11

tmux의 페이지에서 정보와 솔루션을 찾았습니다.

화면의 terminfo 설명에는 기울임 꼴 모드가없고 그 자리에 눈에 띄는 모드가 있지만 urxvt기울임 꼴에 사용되는 것과 동일한 이스케이프 시퀀스를 사용합니다. 즉 vim, 이탤릭체를 찾는 응용 프로그램 (예 : 이탤릭체)은 이탤릭체를 찾지 못하고 대신 그 방향이 바뀔 수 있지만, 눈에 띄지 않는 응용 프로그램 (예 : 덜)은 반전이 아닌 이탤릭체로 끝납니다.

[Fix 1] terminfo 항목을 교체하고 역 + 이탤릭체로 표시

(사용자 당!)

이 응용 프로그램을 인식하도록 tmux지원 기울임 꼴 및 뛰어난위한 적절한 이스케이프 시퀀스를 사용하는 새 만들어야 의 terminfo 수정과 파일 sgr, smso, rmso, sitmritm항목 :

$ mkdir $HOME/.terminfo/
$ screen_terminfo="screen"
$ infocmp "$screen_terminfo" | sed \
  -e 's/^screen[^|]*|[^,]*,/screen-it|screen with italics support,/' \
  -e 's/%?%p1%t;3%/%?%p1%t;7%/' \
  -e 's/smso=[^,]*,/smso=\\E[7m,/' \
  -e 's/rmso=[^,]*,/rmso=\\E[27m,/' \
  -e '$s/$/ sitm=\\E[3m, ritm=\\E[23m,/' > /tmp/screen.terminfo
$ tic /tmp/screen.terminfo

그리고 tmux에게 ~ / .tmux.conf 에서 사용하도록 지시하십시오 .

set -g default-terminal "screen-it"

터미널이 256 색을 지원하는 경우 다음을 사용하십시오.

$ screen_terminfo="screen-256color"

"스크린"대신. 자세한 내용은 256 색 지원에 대한 FAQ 항목을 참조하십시오. 또한 tmux는 기울임 꼴을 지원하지 않는 터미널에는 여전히 역방향 비디오를 표시합니다.

urxvt기울임 꼴을 전혀 표시 할 수없는 경우 기울임 꼴 가능 글꼴이 활성화되어 있는지 확인하십시오 (예 : ~ / .Xdefaults에 추가) .

urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true

[Fix 2] 이탤릭체 컨트롤 문자를 간단히 역으로 대체

이 터미널 재정의를 ~ / .tmux.conf에 추가하십시오 .

set -g terminal-overrides 'rxvt-unicode*:sitm@,ritm@'

2
수정 1이 작동하는 것 같지만 2015 년인데, 정말 어려울 수 있습니까?
user1338062

불행히도, 나는이 문제에 대한 더 좋은 해결책을 찾을 수 없습니다 + tmux 메일 링리스트에서 이것을 찾았을 때 검색을 중단했습니다 ... :(
andras.tim

4
tmux FAQ 에 따르면 tmux 2.1은 문제를 해결해야합니다. 그래서 이것은 일시적으로 만 필요하다고 생각합니다. 나는 개인적으로 방금 OP가 말한 것을하고 내로 설정 default-terminal했습니다 xterm.
user1338062

때로는 이것이 좋지 않습니다. 예를 들어 PuTTY와 호환되어야 할 때는 변형 xterm만 사용할 수 없습니다 screeen.
andras.tim

1
픽스 1은 나를 위해 일했지만 태양을 dircolors사라지게 만들었습니다 . TERM screen-it의 터미널 목록 에 추가하여 문제를 해결할 수있었습니다 ~/.dircolors.
Benjamin W.

4

더 빠른 방법 :

set -g terminal-overrides "screen.xterm-new"

더 이상의 마술없이 작동합니다 (그리고 여전히 "스크린"또는 그 파생어가 필요한 터미널 유형에 대한 tmux 매뉴얼의 경고에 유의하십시오).


1
예를 들어, watch -n10 -d COMMAND args..빈칸과 같은 변화를 감지 할 수 있습니다. 이탤릭 공백은 어떻게합니까? 나는 이것이 받아 들여야 할 답변이라고 생각합니다. 참고 : 터미널이 이미 열려 있으면TERM=screen.xterm-new; export TERM
Tino

2

아치 리눅스에서 urxvt를 실행합니다. op의 대답은 저에게 도움이되지 않았습니다. 이것은 나를 도왔다 :

https://github.com/tmux/tmux/blob/2.1/FAQ#L355-L383


검색 italic하고 실행하십시오. 그런 다음 이것을 tmux 구성에 넣으십시오.

set -g default-terminal "tmux"

"tmux-256color"를 사용하지 마십시오. (내가 생각하지만 시도해 보지 않았다.)


마지막으로 이것을 rc (.zshrc, .bashrc 등)에 추가하십시오 :

export TERM="xterm-256color"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.