Как включить полноцветную поддержку в Vim?

У меня есть прекрасная схема цветов Vim ( xoria256 ), и она выглядит великолепно в GVim, но когда я использую обычный vim в Терминале, схема цветов поддерживается только частично - например, полу прозрачный баклажановый цвет фона. Как сделать так, чтобы Terminal добросовестно отображал мою цветовую схему Vim?

98
задан 21 February 2014 в 14:46

5 ответов

Просто включайте строку ниже в Ваш $HOME/.bashrc (предпочтительно в последней строке файла):

export TERM="xterm-256color"

И сохраните его. После, перезапустите свой терминал гнома. Это изменение будет доступно не только в энергии, но и для всех Ваших терминальных приложений.

Чтобы проверить, работает ли это, запускает этот небольшой скрипт:

#!/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")

После этого Вы будете видеть, что-то как следующее (зависит от Вашей терминальной гномом темы):

terminal

36
ответ дан 21 February 2014 в 14:46

Более общим решением является установка термина «xterm-256color». В 10.04 я думаю он установлен по умолчанию. Ранее вам нужно было установить «ncurses-term», чтобы получить его.

Затем установите термин type в .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, который отобразит все цвета в вашем терминале.

0
ответ дан 21 February 2014 в 14:46

GNOME Terminal поддерживает 256 цветов, но не объявляет о своей поддержке. Вы можете переопределить автоопределение vim, поставив следующее:

if $COLORTERM == 'gnome-terminal'
  set t_Co=256
endif

в вашем ~ / .vimrc.

Примечание : если вы используете экран GNU, он с удовольствием съест эти 256-цветовые коды и преобразует их в основные 16 цветов. Лучшим решением будет изменить TERM на xterm-256color перед запуском screen / vim.

Обновление для 2017 года : если у вас достаточно недавний Vim (7.4.1799 или новее) и достаточно продвинутый эмулятор терминала (xterm или gnome-терминал, основанный на достаточно недавней версии VTE) , вы можете :set termguicolors, и терминал vim будет использовать полные 24-битные цвета, как определено вашей темой vim с помощью highlight guifg=#rrggbb guibg=#rrggbb.

0
ответ дан 21 February 2014 в 14:46

Ну, вы всегда можете настроить Gvim так, чтобы он выглядел как Vim. Вам просто нужно создать файл ~ / .gvimrc и вставить в него следующие приемы настройки:

set guioptions-=r  " no scrollbar on the right
set guioptions-=l  " no scrollbar on the left
set guioptions-=m  " no menu
set guioptions-=T  " no toolbar

Я не думаю, что это решит вашу проблему, но кто знает; -)

0
ответ дан 21 February 2014 в 14:46

Я сделал отдельный профиль для Vim, который использует сплошной непрозрачный цвет на заднем плане. Я просто вручную переключаюсь на него всякий раз, когда использую Vim. Не уверен, есть ли лучший метод. Я бы хотел так думать.

0
ответ дан 21 February 2014 в 14:46

Другие вопросы по тегам:

Похожие вопросы: