พื้นหลังของ Colorscheme ไม่ถูกต้องในเทอร์มินัล


13

ฉันนำเข้าชุดสีและแผงพลังงานแสงอาทิตย์ เทอร์มินัลของฉันมีสีและพื้นหลังที่ถูกต้อง gvim มีสีและพื้นหลังที่ถูกต้อง แต่ vim มีพื้นหลังสีไม่ถูกต้อง ข้อความทั้งหมดถูกต้อง แต่พื้นหลังดูเหมือนจะเป็นสีดำบริสุทธิ์

นี่เป็นการเปรียบเทียบเทอร์มินัล GVim และ Vim

นี่คือ. vimrc ของฉัน:

syntax enable

if has('gui_running')
    set background=dark
else
    set background=dark
endif

:set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized

หากใครมีข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งที่อาจทำให้เกิดสิ่งนี้ฉันจะต้องรับผิดชอบมาก ฉันรัน xubuntu ด้วยเทอร์มินัลเริ่มต้น

ฉันควรจะพูดถึงว่าตัวเลือกแสงส่งผลให้พื้นหลังเป็นสีเหลืองสำหรับ Vim


1
โดย "[m] y เทอร์มินัลมีสีและพื้นหลังที่ถูกต้อง" คุณหมายถึงว่าคุณทำตามคำแนะนำเฉพาะเกี่ยวกับ Vim ในเทอร์มินัลหรือไม่?
แอนดรู

2
ฉันทำตามคำแนะนำแล้ว @Andrew ขอบคุณค่ะ
Oberdiear

@Oberdiear คำแนะนำของแอนดรูว์เชื่อมโยงเพื่ออธิบายว่าคุณควรตั้งค่าเครื่องของคุณให้ใช้สีแสงอาทิตย์และไม่ใช้g:solarized_termcolors=256ตัวเลือก หากคุณมีความสุขที่จะใช้สีแสงอาทิตย์ในอาคารของคุณวิธีนี้ใช้งานได้ดีกว่ามาก ข้อความในคำถามของคุณบอกเป็นนัยว่าคุณได้ตั้งค่าเทอร์มินัลของคุณให้ใช้สีแสงอาทิตย์ (แม้ว่าภาพหน้าจอที่คุณแสดงจะดูไม่เหมือนที่ฉันเห็น) ในกรณีนี้ทำไมคุณถึงใช้การg:solarized_termcolors=256ตั้งค่า
รวย

คุณใช้เทอร์มินัลอะไร ฉันมีสคริปต์นี้gnome-terminalสำหรับ
wchargin

@ ที่อุดมไปด้วยฉันเดาว่าฉันไม่ได้ตั้งค่าจานสีอย่างถูกต้อง คุณ (หรือคนอื่น) รู้วิธีตั้งค่า Xfce Terminal อย่างถูกต้องหรือไม่?
Oberdiear

คำตอบ:


10

มีสองเหตุผลที่ฉันคิดว่าสิ่งนี้อาจเกิดขึ้น:

  1. ชุดรูปแบบสีแสงอาทิตย์ที่คุณใช้ไม่ได้ประกาศctermfgและctermbgสำหรับคุณสมบัติใด ๆ ที่คุณต้องการเน้น ลองนี้ออกโทนสีควรมองหลักเดียวกันทั้งภายในของสถานีและ gvim ถ้าเป็นกรณีนี้แล้วคุณอาจต้องมองในการใช้โทนสีที่ประกาศและctermfgctermbg

  2. คุณอาจต้องแน่ใจว่าเทอร์มินัลอีมูเลเตอร์ของคุณรองรับสีที่คุณพยายามแสดง:


โปรดทราบว่าสิ่งทั้งสองนี้อาจเกิดขึ้นในเวลาเดียวกัน แต่ก็ยากที่จะวินิจฉัยโดยไม่มีข้อมูลเพิ่มเติมเกี่ยวกับระบบของคุณ


Desert66 ใช้งานได้ดี แต่ฉันไม่ใช่แฟนตัวยง ฉันเชื่อว่าTERMตัวแปรไม่ถูกต้อง แต่ฉันไม่รู้ว่าจะเปลี่ยนอย่างไร
Oberdiear

2
ฉันติดตั้ง ncurses- ระยะ จากนั้นฉันก็รันคำสั่ง หลังจากที่ฉันเรียกใช้ข้อความทั้งหมดจะกลายเป็นสีเทาและพื้นหลังเป็นสีดำ
Oberdiear

1
มันควรจะexport TERM=xterm+256colorไม่ใช่ "color s " (พหูพจน์) นอกจากนี้ผมเชื่อว่าจะควรจะxterm-256colorไม่ "** + ** 256color. แต่ผมอาจจะผิดโดยเฉพาะเกี่ยวกับการใช้มันด้วย solarized ตามคำตอบนี้ ,# Entries with embedded plus signs are designed to be included through use/tc capabilities, not used as standalone entries.
เอ็ดเวิร์ด

export TERM=xterm+256colorใน OSX ฉันได้รับzle-line-finish:echoti:1: no such terminfo capability: rmkx
Xeoncross

ฉันมีปัญหาตรงนี้และexport TERM=xterm+256colorsช่วยตรวจจับแสงอาทิตย์แล้วใช้สีพื้นหลังตรงตามที่เครื่องของฉัน
Shyam Habarakada

5

ข่าวดีทุกคน @Tom และ @Rich ตั้งฉันบนเส้นทางที่ถูกต้อง ผมพบว่าวิธีการแก้ปัญหาให้ไว้ที่นี่ ฉันตั้ง. vimrc ของฉันให้ง่าย

syntax enable
set background=dark
set t_Co=16
colorscheme solarized

ดูเหมือนว่าจะแก้ไขทุกอย่าง สีดูเหมือนจะไม่สดใสในตัวอย่างแบบอักษรแต่นั่นอาจเป็นฉันได้อย่างดี สำหรับใครก็ตามที่ต้องการใช้ Solarized colourscheme และใช้ xfce4-terminal เพียงแค่เปลี่ยน terminalrc และ. vimrc ก็ดูเหมือนจะแก้ปัญหาหลักของฉันได้ ขอบคุณทุกคนสำหรับความช่วยเหลือของคุณ!


1
คุณไม่จำเป็นต้องใช้set t_Coบรรทัดใน vimrc ของคุณ: Vim สามารถอ่านค่านี้จากเทอร์มินัล (การตั้งค่า't_Co'ดูเหมือนจะเป็นลัทธิ Vim Cargo เล็กน้อย: ผู้คนมากมายออนไลน์แนะนำให้ทำเช่นนั้นโดยไม่เข้าใจปัญหาที่พวกเขาพยายามแก้ไข .)
รวย

ฉันแค่จะพูดว่า "หน้าจอ" และ "tmux" - เครื่องมือเหล่านี้เปลี่ยนตัวแปร $ TERM ดังนั้นกลุ่มจึงไม่สามารถอ่านข้อมูลที่ต้องการได้
NieDzejkob

@NieDzejkob คุณสามารถใช้ terminal multiplexer และยังคงมี terminal ที่กำหนดค่าไว้อย่างถูกต้อง
รวย

@ คุณคิดว่าจะอธิบายสิ่งที่ถูกต้องในด้านขั้วคืออะไร? ฉันกำลังใช้ tmux ด้วย$TERM=screenและการตั้งค่าt_Co=16ช่วยแก้ไขปัญหาด้านภาพสำหรับฉัน แต่ฉันอยากจะรู้ว่าความสัมพันธ์คืออะไรในตอนแรก
ffledgling

@ffledgling ฉันชอบที่จะ อาจจะต้องมีบิตของกลับมา แต่เพื่อมาเจอกันในการสนทนา
รวย

4

ฉันเดาว่ามันเป็นปัญหาของความเข้ากันได้ของสิ่งนี้colorschemeกับเทอร์มินัล ปลั๊กอินcsaproxแก้ไขปัญหานี้ได้อย่างน่าอัศจรรย์

สรุป:

มันยากที่จะหา colourchemes สำหรับ terminal Vim colorchemes ส่วนใหญ่เขียนขึ้นเพื่อรองรับ GVim เท่านั้นและไม่สามารถใช้งานได้ใน terminal Vim

ปลั๊กอินนี้จะทำให้ชุดสี GVim เท่านั้น Just ทำงานในเทอร์มินัล Vim ตราบใดที่เทอร์มินัลรองรับ 88 หรือ 256 สี - และส่วนใหญ่ทำวันนี้ สิ่งนี้มักจะไม่ต้องการการโต้ตอบกับผู้ใช้ (แต่ดูความช่วยเหลือสำหรับสิ่งที่ต้องทำหากสิ่งต่าง ๆ ไม่ทำงาน) หลังจากติดตั้งปลั๊กอินนี้อย่างมีความสุขทุกครั้งที่คุณใช้:colorschemeมันจะทำเวทย์มนตร์และสร้าง colorcheme Just Work

ลิงก์ไปยังปลั๊กอิน:


1
นี่เป็นปลั๊กอินที่มีประโยชน์ แต่จะไม่ช่วยที่นี่เนื่องจากโซลาร์เซลล์สีเปลี่ยนไปเป็นความพยายามอย่างมากในการทำงานใน terminal Vim ภายใต้อาคารทั้ง 16 สีและ 256 สี
รวย

4

solarchized terminal-Vim สามารถทำงานได้ในหนึ่งในสองวิธีที่แตกต่างกัน

  1. โหมด 16 สี: พลังงานแสงอาทิตย์มีเพียง 16 สีดังนั้นในโหมดนี้คุณตั้งค่าให้เครื่องของคุณใช้สีแสงอาทิตย์เป็น 16 สีและ Vim ใช้สีเหล่านี้ ตัวอย่างเช่น Vim colorscheme จะร้องขอสีเทอร์มินัล "1" และเทอร์มินัลจะแสดงค่านี้เป็นสีฐานสิบ # dc322f

  2. โหมด 256 สีซึ่งจะเลือกการจับคู่ที่ใกล้เคียงที่สุดสำหรับ 16 สีจากจานสี 256 สี

วิธีการเดิมแนะนำโดยผู้เขียน (และโดยฉัน) และดูเหมือนว่าคุณยินดีที่จะใช้วิธีนี้เพราะคุณระบุว่า "เทอร์มินัลของคุณมีสีและพื้นหลังที่ถูกต้อง"

อย่างไรก็ตามปรากฏขึ้นจากภาพหน้าจอของคุณว่าเทอร์มินัลของคุณไม่ได้ตั้งค่าสีที่ถูกต้อง (สีขาวไม่ใช่สีในชุด solarized และถึงแม้ว่าฉันไม่ได้มองมันสีข้อความสีอื่น ๆ ในสกรีนช็อตก็ไม่ได้ดูเป็นเหมือนฉันว่ามันเป็น Solarized "Violet" (# 6c71c4) เช่นกัน)

หากคุณลบการตั้งค่าเส้นt_Coและg:solarized_termcolorsจาก vimrc * ของคุณและกำหนดค่าสีเทอร์มินัลของคุณอย่างถูกต้องจากนั้นคุณควรพบว่า colorcheme สีแสงอาทิตย์ 16 สีจะเริ่มทำงาน

* เส้นเหล่านี้เปลี่ยนเป็นแบบโซลาร์เพื่อใช้โหมด 256 สี สิ่งนี้ควรใช้งานได้ (ฉันสงสัยว่า@Jubal ถูกต้องในการแนะนำว่า BCE เป็นปัญหาที่นี่ ) แต่โหมด 16 สีจะดีกว่าถ้าคุณไม่ต้องการใช้พลังงานแสงอาทิตย์ในอาคารของคุณอย่างชัดเจน


ฉันเชื่อว่าคุณอยู่ในเส้นทางที่ถูกต้องอย่างสมบูรณ์ ฉันคิดว่าฉันติดตั้งจานสีไม่ถูกต้อง คุณช่วยพาฉันผ่านกระบวนการนี้ได้ไหม ฉันขอขอบคุณทุกความช่วยเหลือของคุณ @Rich
Oberdiear

1
ดูเหมือนว่าลิงก์แรกของคุณจะหมดอายุ
akozi

@azoki ขอบคุณที่แจ้งให้เราทราบ ดูเหมือนไซต์ Solarized อยู่ระหว่างการปรับปรุง ฉันเปลี่ยนลิงค์ให้ชี้ไปยัง repo Github ในขณะนั้น
รวย

3

ดูเหมือนว่าคุณจะพบคำตอบของคุณ ฉันมีปัญหาเดียวกันนี้และไม่มีอะไรข้างต้นทำงาน สิ่งที่ทำงานสำหรับฉันคือการใช้ของการทะเลาะวิวาทterminalrcเมื่อเทียบกับของ sgerrand

ความเกี่ยวข้องของฉันvimrcคือ:

syntax enable
set background=dark
colorscheme solarized

หวังว่าจะช่วยให้ใครบางคน!


1

ดังนั้นนี่คือสิ่งที่เหมาะกับฉัน (ในทุกเทอร์มินัลที่ฉันใช้ - xterm, konsole, gnome-terminal, iterm2, roxterm - ทั้ง Linux และ OS X, ด้วย gvim และ macvim):

" no other configuration than this needed for solarized
colorscheme solarized
highlight SpecialKey ctermfg=11 ctermbg=8

if &term =~ '256color'
  " Disable Background Color Erase (BCE) so that color schemes work
  " properly within 256-color terminals
  set t_ut=
endif

สิ่งนี้ทำให้เกิดปัญหาคล้ายกันกับการตั้งค่า t_Co = 16 ฉันค่อนข้างแน่ใจว่าฉันมีปัญหากับจานสี แต่ฉันยังไม่เข้าใจ
Oberdiear

คุณใช้เทอร์มินัลอีมูเลเตอร์ใด? ถ้าฉันจำได้ถูกต้องการกำหนดค่าในตัวของระบบพลังงานแสงอาทิตย์ของ konsole นั้นไม่สามารถใช้งานได้อย่างสมบูรณ์และจำเป็นต้องใช้การตั้งค่าจากแหล่งเก็บพลังงานแสงอาทิตย์ดั้งเดิม…
Jubal

ฉันใช้ Xfce Terminal
Oberdiear

ฉันคิดว่าฉันใช้งานได้: พยายามบังคับให้ TERM เป็น xterm-256color ในขณะที่ใช้การตั้งค่าล่วงหน้าจาก solarized จากการตั้งค่าของเทอร์มินัล สิ่งนี้พร้อมกับการแฮ็ก BCE ข้างต้นได้ทำการหลอกให้ xfce4-terminal สำหรับฉัน
Jubal

(ยังมีบางสิ่งที่แปลกประหลาดกับการจำลองเทอร์มินัลพื้นฐานและการแสดงตัวอักษรและฉันคิดว่าฉันได้รับการเตือนว่าทำไมฉันกลับไปที่ xterm เก่าธรรมดาบน Linux ... )
Jubal

0

นี่เป็นความเจ็บปวดในการทำงาน (ฉันใช้ terminal Vim ใน Linux Mint) และน่าเสียดายที่ฉันไม่ได้เขียนรายละเอียดเฉพาะของทุกสิ่งที่ฉันทำ นี่คือส่วนที่เกี่ยวข้องของ vimrc ของฉัน:

syntax enable
set background=dark
set t_Co=16
colo solarized

นอกจากนี้ยังอาจจะมีมูลค่าการตรวจสอบจากโครงการนี้บน GitHub


set t_Co = 16 ทำให้สีต่างไปจากเดิมอย่างสิ้นเชิง ฉันยังใช้เทอร์มินัล Xubuntu เริ่มต้นคือ Xfce-Terminal
Oberdiear

@Oberdiear หากการตั้งค่า t_Co = 16 ส่งผลกระทบต่อสีในลักษณะนั้น (ด้วยตัวแปร g: solarized_termcolors ไม่ได้ตั้งค่าไว้) หมายความว่าสีเทอร์มินัลของคุณไม่ได้ตั้งค่าอย่างถูกต้องเพื่อใช้พลังงานแสงอาทิตย์ คุณตั้งค่าสีเทอร์มินัลของคุณอย่างไร?
รวย

0

สิ่งที่ใช้ได้ผลสำหรับฉันคือการลบส่วนนี้ของการตั้งค่าของคุณ

if has('gui_running')
   set background=dark
else
   set background=dark
endif

ฉันกำลังใช้งานเทอร์มินัล xfce4


0

xfce-terminalฉันมีปัญหานี้มากเกินไปด้วย

หลังจากการวิจัยเล็กน้อยฉันค้นพบข้อผิดพลาดนี้ : สิ่งที่คุณตั้งค่าไว้$TERMในเทอร์มินัล XFCE ของคุณจะถูกเพิกเฉยอย่างเงียบ ๆ

ฉันคิดว่านี่เป็นข้อผิดพลาดของไลบรารี VTE เก่า (และไม่มีการทำลาย) พื้นฐานที่ XFCE terminal (ยังคงใช้ GTK + 2) ใช้อยู่ การสลับไปยังเทอร์มินัล GTK + 3 ที่ใช้ไลบรารี VTE ใหม่โดยปริยายแก้ปัญหาได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.