문제

vim은 몇 가지 이상한 메시지를 보내는 것 같습니다(예:문서화되지 않음) 잉크팟 구성표를 사용할 때 기본 터미널에 대한 이스케이프 시퀀스입니다.VT-100 또는 ANSI 이스케이프 코드와 일치시킬 수 없습니다.이 시퀀스가 ​​무엇인지 아는 사람 있나요?

^[[3231m
^[[4232m
^[[3130m

이러한 시퀀스는 내가 담당하는 터미널 에뮬레이터에서 잘못된 토큰으로 표시되며, 적절한 문서를 찾을 수 있다면 이러한 시퀀스에 대한 지원을 추가하고 싶습니다.

영향을 받는 시스템에는 다음 터미널 관련 환경 변수가 설정됩니다.

TERM=xterm
COLORTERM=

이 두 변수에 대해 다른 설정을 시도하지 않았습니다.

vim은 버전 7.2이지만 동일한 효과를 가진 최신 버전을 사용해 보았습니다.

감사해요!

도움이 되었습니까?

해결책

터미널이 88색 또는 256색 모드를 지원합니까?그렇다면 아마도 다음과 같은 TERM 값을 사용해야 할 것입니다. xterm-88color 또는 xterm-256color 평범한 대신 xterm.

잉크병 특히 8/16 색상만 지원하는 터미널에 대한 지원을 부인합니다.상단에서 잉크병 원천:

" This should work in the GUI, rxvt-unicode (88 colour mode) and xterm (256
" colour mode). It won't work in 8/16 colour terminals.

구문 색상 지정을 설정하는 코드는 터미널이 88색을 지원하지 않으면 256색을 지원해야 한다고 가정합니다.8가지 색상의 경우 대체 값을 제공하려고 시도하지 않습니다(예:언제 TERM=xterm).아마 그러면 좋을 것 같아요 잉크병 터미널이 적절한 색상을 지원하지 않는 것으로 보이면 오류 메시지를 표시하고 색상 설정을 수정하지 않았습니다.


여러분이 보고 있는 제어 시퀀스는 해당 터미널 유형에 허용되는 입력 범위 0-7을 벗어나는 색상 번호에 대해 8색 터미널 색상 제어 시퀀스를 생성하려고 시도한 결과입니다.따라서 이러한 시퀀스는 유효하지 않을 수도 있지만 완전히 의도적인 것도 아닙니다. 잉크병 256색을 지원한다고 가정하지만 xterm terminfo 항목은 기본 8색 지원을 처리하는 방법만 알고 있습니다.

예를 들어, 잉크병 설정합니다 Normal 88색 터미널에서는 구문 전경색을 79로 설정합니다.이는 88색이 아닌 터미널의 경우 231로 변환됩니다(예:256색 터미널뿐만 아니라 8색 터미널에도 적용 가능 xterm).

이 범위를 벗어난 색상 번호의 형식을 지정하려고 하면 TERM=xterm, 결과를 얻습니다 ^[[3231m 당신이 발견한 것:

% tput -T xterm setaf 231 | od -a
0000000  esc   [   3   2   3   1   m
0000007

(즉.삽입 231 ~ 사이 ^[[3 그리고 m)

당신이 사용하는 경우 xterm-256color, 좀 더 정상적으로 보이는 결과를 얻습니다.

% tput -T xterm-256color setaf 231 | od -a
0000000  esc   [   3   8   ;   5   ;   2   3   1   m
0000013

(즉.삽입 231 ~ 사이 ^[[38;5; 그리고 m)

마찬가지로, Normal 구문 88색 배경색 80은 256색 값 232로 변환되어 잘못된 결과를 생성합니다. ^[[4232m 순서 xterm (그러나 더 합리적인 것을 생산할 것입니다. ^[[48;5;232m 아래에 xterm-256color).

다른 팁

^[[3231m
.

가 완료되거나 잘못된 색 정의처럼 보입니다.

^[[32;31m
.

어쨌든 많은 의미가 없을 것입니다.

$TERM 또는 모든 값에 대해 특정 값이 발생합니까?무슨 Vim 버전?어떤 터미널 에뮬레이터에 대해 이야기하고 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top