it-swarm-tr.com

Vim'de tam renkli desteği nasıl etkinleştiririm?

Çok hoş bir Vim colorscheme'im var ( xoria256 ) ve GVim'de mükemmel görünüyor, ancak Terminal'de normal vim kullandığımda renklercheme yalnızca kısmen destekleniyor - örneğin, varsayılan yarı - Şeffaf patlıcan arka plan rengi kullanılır. Terminal'in Vim renk planımı güvenilir bir şekilde oluşturmasını nasıl sağlayabilirim?

97
David Siegel

GNOME Terminal 256 rengi desteklemektedir ancak desteğinin reklamını yapmamaktadır. Aşağıdakileri koyarak vimin otomatik algılama özelliğini geçersiz kılabilirsiniz:

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

~/.vimrc içinde.

Not: GNU ekranını kullanırsanız, bu 256 renkli kodları mutlu bir şekilde tüketir ve bunları temel 16 renge dönüştürür. Daha iyi bir düzeltme, ekranı/vim'i başlatmadan önce TERM'i xterm-256color olarak değiştirmektir.

2017 için Güncelleme: Yeterince yeni bir Vim (7.4.1799 veya daha yenisi) ve yeterince gelişmiş bir terminal emülatörünüz varsa (yeterince yeni bir VTE sürümüne dayanan xterm veya gnome-terminal) varsa, :set termguicolors ve terminal vim, highlight guifg=#rrggbb guibg=#rrggbb kullanarak vim temanız tarafından tanımlandığı gibi tam 24 bit renkler kullanır.

78
Marius Gedminas

Daha genel bir çözüm "xterm-256color" terimini kurmaktır. 10.04'te varsayılan olarak yüklendiğini düşünüyorum. Daha önce bunu elde etmek için "ncurses-term" kurmanız gerekiyordu.

Ardından .bashrc'deki terim türünü aşağıdaki gibi bir şeyle ayarlayın:

if [ -n "$DISPLAY" -a "$TERM" == "xterm" ]; then
    export TERM=xterm-256color
fi

Belirli programlar için yalnızca 256 renk özelliğine sahip olmayı tercih ediyorsanız (belki bazılarının kafasını karıştırır) kullanın:

TERM=xterm-256color myprogram

ve belki de bunu program için bir takma ad olarak ayarlayın.

Ardından terminal renk yeteneklerinizi aşağıdakilerle kontrol edin:

$ tput colors
256

Vim'in tanıması için yukarıdaki vim ayarına hala ihtiyacınız olabilir. Çoğu uygulama 256 rengi otomatik olarak tanıyacaktır (eğer kullanabilirlerse).

Emacs ayrıca 256 renkle çok daha iyi renk temalarına sahiptir. 256 renkli çalışıp çalışmadığını kontrol etmek için:

M-x list-colors-display

256colors.pl Terminalinizdeki tüm renkleri gösterecek olan Perl betiğidir.

44
Dave Jennings

Aşağıdaki satırı $HOME/.bashrc içine (tercihen dosyanın son satırına) ekleyin:

export TERM="xterm-256color"

Ve kurtar. Ardından, GNOME terminalinizi yeniden başlatın. Bu değişiklik yalnızca vim cinsinden değil, tüm terminal uygulamalarınız için geçerli olacaktır.

İşe yarayıp yaramadığını kontrol etmek için şu küçük kodu çalıştırın script :

#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <[email protected]>
# modified by [email protected] to fit my output needs
# modified by [email protected] 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")

Bundan sonra, aşağıdakine benzer bir şey göreceksiniz (GNOME terminal temanıza bağlı olarak):

terminal

36
crncosta

Eh, her zaman Gvim'yi Vim gibi görünecek şekilde yapılandırabilirsiniz. Sadece bir ~/.gvimrc dosyası yaratmanız ve bu özelleştirme püf noktalarına yapıştırmanız yeterlidir:

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

Bunun probleminizi çözdüğünü sanmıyorum, ama kim bilir ;-)

1
wassimans

Vim için arka planda düz, opak bir renk kullanan ayrı bir profil yaptım. Vim kullandığımda sadece manuel olarak değiştiriyorum. Daha iyi bir yöntem olup olmadığından emin değilim. Ben böyle düşünmek istiyorum.

0
DLH