আমি কীভাবে ভিমে পূর্ণ রঙ সমর্থন সক্ষম করব?


98

আমার একটি সুন্দর ভিম কালার্সেম রয়েছে ( xoria256 ) এবং এটি জিভিমে উজ্জ্বল দেখায়, তবে আমি যখন vimটার্মিনালটিতে স্বাভাবিক ব্যবহার করি তখন কালারশিমটি কেবলমাত্র আংশিকভাবে সমর্থিত হয় - উদাহরণস্বরূপ, ডিফল্ট অর্ধ-স্বচ্ছ আব্বারজিন ব্যাকগ্রাউন্ড রঙ ব্যবহার করা হয়। আমি কীভাবে টার্মিনালকে বিশ্বস্তভাবে আমার ভিম রঙের চামড়া রেন্ডার করব?


4
এমনকি ডিফল্ট রঙের স্কিমটি 256 রঙের সাথে আরও ভাল দেখাচ্ছে। যদি এটি আপনার প্রশ্নের জন্য না হয়, আমি এটি কখনই খুঁজে পেতাম না। এটি ডিফল্ট হওয়া উচিত।
মিহাই ক্যাপোটা

উত্তর:


79

জিনোম টার্মিনালটি 256 টি রঙ সমর্থন করে, তবে এর সমর্থনের বিজ্ঞাপন দেয় না। আপনি নিম্নলিখিতটি রেখে ভিমের অটোডোটেকশনকে ওভাররাইড করতে পারেন:

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

আপনার ~ / .vimrc এ।

দ্রষ্টব্য : আপনি যদি জিএনইউ স্ক্রিন ব্যবহার করেন তবে এটি 256-রঙের কোডগুলি আনন্দের সাথে খাবে এবং এগুলিকে বেসিক 16 রঙে রূপান্তর করবে। স্ক্রিন / ভিআইএম চালু করার আগে TERM কে xterm-256 রঙে পরিবর্তন করা আরও ভাল সমাধান।

2017 এর জন্য আপডেট : আপনার যদি যথেষ্ট পরিমাণে সাম্প্রতিক ভিম (7.4.1799 বা আরও নতুন) থাকে এবং পর্যাপ্ত উন্নত টার্মিনাল এমুলেটর থাকে (এক্সটার্ম, বা জেনোম-টার্মিনাল ভিটিইর যথেষ্ট সাম্প্রতিক সংস্করণের উপর ভিত্তি করে), আপনি করতে পারেন :set termguicolorsএবং টার্মিনাল ভিম পুরো ব্যবহার করবে 24-বিট রঙগুলি আপনার ভিএম থিম ব্যবহার করে সংজ্ঞায়িত করা হয়েছে highlight guifg=#rrggbb guibg=#rrggbb


1
এটি কাজ করে না, আমার টার্মিনালটি এখনও আবার্গিন!
ডেভিড সিগেল

আমি কী বলতে পারি - যখন আমি করি তা আমার পক্ষে কাজ করে :set t_Co=256 | colorscheme xoria256
মারিয়াস গেডমিনাস

1
আপনি আপনার ভিএমআরসি-তে জিনোম-টার্মিনালের উপস্থিতি পরীক্ষা করতে পারেন, তারপরে t_Co ভেরিয়েবলটি যথাযথভাবে সেট করুন। উদাহরণস্বরূপ: if $COLORTERM == 'gnome-terminal't t_Co = 256` সেট করুন endif ( মন্তব্যে কীভাবে কোডের বহু-লাইন ব্লক যুক্ত করবেন তা আমি নিশ্চিত নই, সুতরাং সেট স্টেটমেন্টের আগে এবং পরে নতুন লাইন যুক্ত করব)
ম্যাট

3
জিনোম-টার্মিনালের জন্য জিনোম -২66 রঙ এবং স্ক্রিনের জন্য স্ক্রিন -২66 রঙ ব্যবহার করা ভাল।
ধূসর,

3
@trusktr সিএস অ্যাপ্রোক্স এবং সিএসইএক্স্যাক্ট ভিআইএম এক্সটেনশনগুলি গুগল করে।
মারিয়াস গেডমিনাস

44

আরও সাধারণ সমাধান হ'ল "xterm-256color" শব্দটি ইনস্টল করা। 10.04-এ আমি মনে করি এটি ডিফল্টরূপে ইনস্টল। আগে এটি পাওয়ার জন্য আপনাকে "এনক্রস-টার্ম" ইনস্টল করতে হবে।

তারপরে নীচের মতো কিছু দিয়ে .bashrc এ টাইপ শব্দটি সেট করুন:

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

আপনি যদি কেবলমাত্র কিছু প্রোগ্রামের জন্য কেবল 256 রঙ ধারণ করতে পছন্দ করেন (সম্ভবত এটি অন্য কিছুকে বিভ্রান্ত করে) তবে এর পরিবর্তে ব্যবহার করুন:

TERM=xterm-256color myprogram

এবং সম্ভবত এটি প্রোগ্রামের একটি উপাধি হিসাবে সেট করুন।

তারপরে আপনার টার্মিনাল রঙের ক্ষমতাগুলি পরীক্ষা করুন:

$ tput colors
256

ভিম এটি সনাক্ত করতে আপনার এখনও উপরের ভিম সেটিংয়ের প্রয়োজন হতে পারে। বেশিরভাগ অ্যাপ্লিকেশন 256 টি রঙ স্বয়ংক্রিয়ভাবে চিনতে পারে (যদি তারা সেগুলি ব্যবহার করতে পারে)।

ইমাসেও রঙিন থিম রয়েছে যা 256 টি রঙের সাথে আরও ভাল। এটি 256-রঙে সক্ষম চালিত কিনা তা পরীক্ষা করতে:

M-x list-colors-display

256colors.pl হ'ল পার্ল স্ক্রিপ্ট যা আপনার টার্মিনালের সমস্ত রঙ প্রদর্শন করবে।


1
প্রকৃতপক্ষে, জিনোম -২66 রঙ জিনোম-টার্মিনালের জন্য আরও সঠিক।
ধূসর,

এটি zsh এ কাজ করবে, আমি ব্যাশ ব্যবহার করব না?
বিনিত কুমার

2
ডেভ, আমি 100% নিশ্চিত নই যদি এটি সঠিক কিনা কিন্তু এখানে একটি হল oneliner সংস্করণ আপনার কমান্ডের: [[ -n "$DISPLAY" && "$TERM" = "xterm" ]] && export TERM=xterm-256color। দয়া করে যাচাই করুন এবং নিখরচায় এটি পোস্টে যুক্ত করুন।
জেজেডি

@ জেজেডি কাজ করা উচিত, তবে আপনি সর্বদা কখনও ;ওয়ান-লাইনার তৈরি করতে ব্যবহার করতে পারেন।
মার্টিন উয়েডিং

1
@ ডেভ-জেনিংস স্ক্রিপ্টের লিঙ্কটি নষ্ট হয়েছে।
মার্টিন উয়েডিং

36

কেবল নীচের লাইনটি আপনার $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")

এরপরে, আপনি নীচের মতো কিছু দেখতে পাবেন (আপনার জিনোম-টার্মিনাল থিমের উপর নির্ভর করে):

প্রান্তিক


2
আমি ভাবছি কেন পাইথনে স্ক্রিপ্টটি তৈরি করে যদি এতে কেবল শেল কমান্ড থাকে। বাশে লুপস, এসিএসস, আইএফএস এবং ফাংশন রয়েছে, আপনি জানেন;)
মাস্ট্রলিয়ন

1

ভাল, আপনি সর্বদা জিভিমকে ভিমের মতো দেখতে তৈরি করতে কনফিগার করতে পারেন। আপনাকে কেবল একটি। / .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

আমি ভিমের জন্য পৃথক প্রোফাইল তৈরি করেছি যা পটভূমিতে একটি কঠিন, অস্বচ্ছ রঙ ব্যবহার করে। আমি যখনই ভিম ব্যবহার করি তখন আমি নিজেই এটিতে স্যুইচ করি। আরও ভাল পদ্ধতি আছে কিনা তা নিশ্চিত নয়। আমি এটা ভাবতে চাই


2
if has("gui_running")গুই নির্দিষ্ট বিকল্পগুলি সেট করতে আপনি আপনার ভিআরসিআর ব্যবহার করতে পারেন ।
ম্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.