ฉันจะสร้าง colorcheme ของฉันเองได้อย่างไร


16

ฉันต้องสร้างไฟล์อะไร สิ่งที่ควรอยู่ในไฟล์เหล่านี้ มีไฟล์ colorcheme เริ่มต้นอยู่ที่ใดที่ฉันสามารถใช้และเปลี่ยนค่าสีได้หรือไม่?

คำตอบ:


15

สถานที่ตั้งของ Colorscheme

ก่อนอื่น Vim จะค้นหาcolorsไดเรกทอรีในโฟลเดอร์รันไทม์ ที่นี่เป็นที่เก็บชุดสีทั้งหมด ( :help 'runtimepath')

ซึ่งหมายความว่าคุณจะต้องมีหนึ่งไฟล์ที่อยู่ใน~/.vim/colorsโฟลเดอร์ ค่าเริ่มต้น colorschemes ตั้งอยู่ใน$VIMRUNTIME/colorsซึ่ง$VIMRUNTIMEโดยปกติจะเป็น/usr/share/vim/vim74หรือ/usr/local/share/vim/vim74ไดเรกทอรีขึ้นอยู่กับวิธีการติดตั้งเป็นกลุ่ม (แทน vim74 สำหรับ vim73 สำหรับ vim73 สำหรับ Vim รุ่น 7.3)

ตอนนี้เพื่อไปยังส่วนที่สนุก

การสร้าง colorcheme

ในการเริ่มต้นด้วยการสร้าง colorcheme ของคุณเองฉันขอแนะนำอย่างยิ่งให้ดูที่ colorchemes เริ่มต้นและการทดสอบโดยการปรับเปลี่ยน

ดังนั้นคัดลอกค่าสีเริ่มต้นจาก$VIMRUNTIME/colorsโฟลเดอร์ไปยัง~/.vim/colorsโฟลเดอร์ของคุณ ตั้งชื่อสิ่งที่แตกต่างจากชื่อ colorcheme เริ่มต้น ดังนั้นหากคุณคัดลอกdesertcolorcheme ที่มาพร้อมกับ Vim โดยค่าเริ่มต้นให้ตั้งชื่อไฟล์เป็นdefault_mod.vimหรืออะไรบางอย่างกับเอฟเฟกต์นั้น เปิดไฟล์ colorscheme และเปลี่ยนเป็นlet g:colors_nameยังแตกต่างจากไฟล์ colorcheme เริ่มต้น ตามแบบแผนนี่ควรเป็นชื่อไฟล์ colorscheme

ในสกีมสีทั้งหมดที่คุณต้องทำคือการให้สีสำหรับctermbg, ctermfg, guibg, guifg(สำหรับพื้นหลังขั้วเบื้องหน้า terminal, พื้นหลังกุยสีเบื้องหน้า GUI ตามลำดับ) สำหรับที่แตกต่างกันสร้างขึ้นในกลุ่มไฮไลท์ ในการตรวจสอบรายชื่อกลุ่มไฮไลต์ที่คุณสามารถแก้ไข:help highlight-defaultได้ คุณยังสามารถใช้ctermและguiแอตทริบิวต์เพื่อระบุว่าคุณต้องการให้กลุ่มเน้นเป็นตัวหนาหรือตัวเอียง

ตัวอย่างเช่นนี้จะตั้งค่าสีเขียวสำหรับสตริง:

highlight String ctermbg=NONE ctermfg=107 guibg=NONE guifg=#95B47B

คุณยังสามารถใช้ลิงก์ไฮไลต์เพื่อเชื่อมโยงกลุ่มไฮไลต์ไปยังกลุ่มอื่น สิ่งนี้มีประโยชน์หากคุณต้องการให้กลุ่มไฮไลต์สองกลุ่มเป็นสีเดียวกัน

ตัวอย่างเช่นคุณสามารถเชื่อมโยงdiffAddedกลุ่มไฮไลต์กับกลุ่มไฮไลต์สตริงที่กำหนดไว้ด้านบน:

highlight link diffAdded String


หากฉันเพิ่งคัดลอกไฟล์ colorscheme.vim หนึ่งไฟล์จากนั้นวางไว้ในโฟลเดอร์แยกกันฉันจะสามารถนำมันกลับมาใช้กับเครื่องอื่นได้หรือไม่ เช่นถ้าฉันใส่ไว้ใน repo บน github ฉันจะสามารถโคลนมันหรือเปิดใช้งานในหนึ่งในตัวจัดการปลั๊กอินหรือไม่
dkns

@dkns ใช่แน่นอน ตัวอย่างเช่นคุณสามารถตั้งชื่อ colorscheme ของคุณเป็น "dkns_colorscheme.vim" วางไว้ในสี / ไดเรกทอรีแล้วดันขึ้นไปที่ Github หากคุณติดตั้งตัวจัดการปลั๊กอินไว้การโคลน repo นี้จะทำให้ colorscheme พร้อมใช้งานสำหรับ Vim
akshay

คำถามอื่น ไม่แน่ใจว่าฉันควรโพสต์ไว้ที่นี่เป็นความคิดเห็นหรือถามคำถามทั่วไปอื่น ฉันจะค้นหาค่าสีสำหรับ cterm ได้อย่างไร ฉันต้องการให้ชุดรูปแบบนี้มีลักษณะเหมือนกันบน gui และเทอร์มินัล แต่ฉันไม่รู้วิธีแปลงค่า hex เป็นค่า cterm
dkns

1
@dkns เนื่องจากสีของเทอร์มินัลส่วนใหญ่ขึ้นอยู่กับจานสีที่ใช้ในเทอร์มินัลอีมูเลเตอร์จึงค่อนข้างยากที่จะทำ เมื่อฉันสร้าง colorcheme ของฉันฉันพบว่ามีประโยชน์ในการแสดงสิ่งที่ 256 สีแต่ละลักษณะ ฉันใช้สคริปต์เล็ก ๆนี้ในโฟลเดอร์ถังขยะ คุณสามารถใช้เครื่องมือเลือกสีเพื่อเลือกสีเพื่อให้แน่ใจว่าสี gui และ cterm เดียวกัน ฉันจะไปจาก cterm-> gui และไม่ใช่วิธีอื่นเนื่องจากมีสีเพิ่มเติมใน gui vim หวังว่าจะช่วย
akshay


0

มีเครื่องมือบางอย่างที่ทำให้อัตโนมัตินี้:

  • vivify : ค่อนข้างซับซ้อนคุณต้องเลือกแต่ละสีสำหรับแต่ละกลุ่มไฮไลต์ด้วยตนเอง
  • vimcolors.org : ง่ายและสะดวกมาก เพียงเลือกสีและมันจะสร้างรูปแบบให้คุณโดยอัตโนมัติ

0

อีกหนึ่งเครื่องมือที่ดีคือRNBโดย romainl ซึ่งใช้ERB ERB (ฝัง RuBy) เป็นคุณลักษณะของ Ruby ที่ให้คุณสร้างข้อความจากเทมเพลต

ดังนั้นการใช้เครื่องมือนี้ค่อนข้างตรงไปตรงมา: อันดับแรกคุณต้องกำหนดตัวแปรต่าง ๆ ที่สอดคล้องกับระบบการตั้งชื่อของ colorcheme ของคุณและแน่นอนกับเนื้อหาที่แท้จริงของมัน (สีควรมีลักษณะอย่างไร ค่อนข้างตรงไปตรงมาเพราะผู้เขียนเขียนความเห็นจำนวนมากเพื่อช่วยคุณ จากนั้นทั้งหมดที่คุณต้องทำคือให้แม่แบบกำหนดเองของคุณเพื่อ erb และเครื่องมือจะสร้างไฟล์ที่เหมาะสม

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