จะบอกได้อย่างไรว่าเซสชัน Vim ใช้สีใดในปัจจุบัน


107

คุณสามารถกำหนดรูปแบบสีเป็นกลุ่มได้โดยการออก

:colorscheme SCHEME_NAME

แต่แปลกพอคุณไม่สามารถรับโครงการที่ใช้ในปัจจุบันโดยการออก

:colorscheme

เนื่องจากผลลัพธ์นี้เป็น " E471: Argument required" ฉันยังไม่เห็นโทนสีที่แสดงในผลลัพธ์ของ:set.

แล้วคุณจะหารูปแบบสีปัจจุบันที่ใช้งานได้อย่างไร (นอกเหนือจากการเปลี่ยนธีมด้วยตนเองจนกว่าคุณจะจำได้)

คำตอบ:


160

ไม่มีวิธีใดที่รับประกันได้ (เนื่องจากรูปแบบสีโดยพื้นฐานแล้วเป็นคำสั่ง vim ที่มีที่มา) อย่างไรก็ตามตามแบบแผนควรมีตัวแปรg:colors_nameที่กำหนดเป็นชื่อของรูปแบบสี

ดังนั้นลองสิ่งนี้:

echo g:colors_name

หากคุณได้รับ E121 อาจเป็นโทนสีที่ทำมาไม่ดีหรือเป็นโทนสีเริ่มต้น

วิธีที่ดีกว่าในการทำเช่นนี้คือ (สำหรับ vim เวอร์ชันล่าสุด):

function! ShowColourSchemeName()
    try
        echo g:colors_name
    catch /^Vim:E121/
        echo "default
    endtry
endfunction

จากนั้นทำ:

:call ShowColourSchemeName()

หากระบุว่า "ค่าเริ่มต้น" ให้ทำ:colorscheme defaultและดูว่าสีเปลี่ยนไปหรือไม่ หากเป็นเช่นนั้นคุณกำลังใช้โทนสีที่ผิดรูปแบบและไม่มีอะไรให้คุณทำได้มากนักนอกจากเปลี่ยนธีมด้วยตนเองจนกว่าคุณจะจำได้

ตัวแปรg:colors_nameมีการบันทึกไว้ที่นี่ :

:help colorscheme

เครื่องหมายคำพูดคู่ปิดหลังจาก"defaultหายไปหรือไม่?
Benjamin W.

38

ตัวเลือกที่ดีที่สุดคือการใช้:coloหรือ:colorschemeในกลุ่มปัจจุบันและข้อความของ colorcheme จริงจะปรากฏขึ้น โปรดมอง,

:help colorscheme 

สำหรับรายละเอียดเพิ่มเติม


3
มันไม่ได้ผลกับฉัน มันบอกว่าdefault. และโทนสีที่ฉันได้รับเมื่อฉันใช้:colo defaultมันเป็นอีกแบบหนึ่ง
daVe

5

คำตอบของ DrAl เวอร์ชันหนึ่งบรรทัด:

let current_scheme = get(g:, 'colors_name', 'default')

get()ฟังก์ชั่นจะถอยกลับไป'default'ชุดถ้าตัวแปรยังไม่ได้รับ

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