回答:
GNOMEターミナルは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設定が必要な場合があります。ほとんどのアプリケーションは、256色を自動的に認識します(使用できる場合)。
Emacsには、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")
その後、次のようなものが表示されます(gnome-terminalのテーマによって異なります):