답변:
그놈 터미널은 256 색을 지원하지만 지원하지는 않습니다. 다음을 입력하여 vim의 자동 감지를 무시할 수 있습니다.
if $COLORTERM == 'gnome-terminal'
set t_Co=256
endif
~ / .vimrc에.
참고 : GNU 화면을 사용하면 256 색 코드를 행복하게 먹고 기본 16 색으로 변환합니다. 더 나은 수정 방법은 screen / vim을 시작하기 전에 TERM을 xterm-256color로 변경하는 것입니다.
2017 년 업데이트 : 충분히 최근의 Vim (7.4.1799 이상) 및 충분히 고급 터미널 에뮬레이터 (완전히 최신 버전의 VTE를 기반으로 한 xterm 또는 gnome-terminal)가 있으면 :set termguicolors
터미널 vim을 완전히 사용할 수 있습니다 을 사용하여 vim 테마에 의해 정의 된 24 비트 색상 highlight guifg=#rrggbb guibg=#rrggbb
.
:set t_Co=256 | colorscheme xoria256
.
if $COLORTERM == 'gnome-terminal'
`set t_Co = 256` endif
(주석에 여러 줄의 코드 블록을 추가하는 방법을 잘 모르므로 set 문 앞뒤에 개행을 추가하십시오)
보다 일반적인 해결책은 "xterm-256color"라는 용어 유형을 설치하는 것입니다. 10.04에서는 기본적으로 설치되어 있다고 생각합니다. 이전에는 "ncurses-term"을 설치해야했습니다.
그런 다음 다음과 같이 .bashrc에 용어 유형을 설정하십시오.
if [ -n "$DISPLAY" -a "$TERM" == "xterm" ]; then
export TERM=xterm-256color
fi
특정 프로그램에 대해 256 색 기능 만 사용하려면 (다른 프로그램과 혼동 될 수 있음) 대신 다음을 사용하십시오.
TERM=xterm-256color myprogram
아마도 프로그램의 별칭으로 설정했을 것입니다.
그런 다음 다음을 사용하여 터미널 색상 기능을 확인하십시오.
$ tput colors
256
vim이 vim을 인식하도록하려면 위의 vim 설정이 여전히 필요할 수 있습니다. 대부분의 응용 프로그램은 256 색을 자동으로 인식합니다 (사용할 수있는 경우).
이맥스는 또한 256 가지 색상으로 훨씬 더 나은 색상 테마를 가지고 있습니다. 256 색 실행 가능한지 확인하려면 다음을 수행하십시오.
M-x list-colors-display
256colors.pl 은 터미널의 모든 색상을 표시하는 Perl 스크립트입니다.
[[ -n "$DISPLAY" && "$TERM" = "xterm" ]] && export TERM=xterm-256color
. 게시물을 확인하고 자유롭게 추가하십시오.
;
모든 것을 하나의 라이너로 만드는 데 사용할 수 있습니다 .
아래 $HOME/.bashrc
줄을 파일 에 넣으십시오 (바람직하게 파일의 마지막 줄에).
export TERM="xterm-256color"
그리고 저장하십시오. 그런 다음 gnome-terminal을 다시 시작하십시오. 이 변경 사항은 vim뿐만 아니라 모든 터미널 응용 프로그램에서 사용할 수 있습니다.
작동하는지 확인하려면 다음 작은 스크립트를 실행하십시오 .
#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <johannes@zellner.org>
# modified by mac@calmar.ws to fit my output needs
# modified by crncosta@carloscosta.org to fit my output needs
import sys
import os
def echo(msg):
os.system('echo -n "' + str(msg) + '"')
def out(n):
os.system("tput setab " + str(n) + "; echo -n " + ("\"% 4d\"" % n))
os.system("tput setab 0")
# normal colors 1 - 16
os.system("tput setaf 16")
for n in range(8):
out(n)
echo("\n")
for n in range(8, 16):
out(n)
echo("\n")
echo("\n")
y=16
while y < 231:
for z in range(0,6):
out(y)
y += 1
echo("\n")
echo("\n")
for n in range(232, 256):
out(n)
if n == 237 or n == 243 or n == 249:
echo("\n")
echo("\n")
os.system("tput setaf 7")
os.system("tput setab 0")
그 후에는 다음과 같은 내용이 표시됩니다 (그놈 터미널 테마에 따라 다름)