ฉันจะแก้ไขสัญลักษณ์แถบสถานะในปลั๊กอินสายการบินได้อย่างไร


64

ฉันติดตั้งปลั๊กอินของสายการบินเพื่อให้มีแถบสถานะที่กำหนดเองดังที่เห็นในภาพด้านล่าง:

ป้อนคำอธิบายภาพที่นี่

อย่างไรก็ตามแถบสถานะของฉันเป็นการนำเสนอสัญลักษณ์<, และ>> <ฉันจะแก้ไขปัญหานี้ได้อย่างไร

ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่


ใช้everythingfonts.com/otf-to-ttfการแปลงอักษรเพื่อ TTF, Example: รุ่นเก่า XShell ไม่สนับสนุน OTF
bhathiya-perera

เพื่อความเข้ากันได้สูงสุดฉันออกairline_powerline_fontsไป ฉันไม่คิดว่าพวกเขามีประโยชน์จริงๆ
qwr

คำตอบ:


50

จริงๆแล้วฉันไม่เข้าใจว่าทำไมคำถามของคุณจึงถูกโหวต ตอนแรกฉันก็ไม่เข้าใจเหมือนกันว่าต้องทำอะไรเพื่อให้ได้แถบเครื่องมือที่ดูดี ใช่ฉันรู้เกี่ยวกับ README และสิ่งอื่น ๆ แต่ฉันคิดว่าควรมีgetting startedหรือminimum settingsส่วนในไฟล์ช่วยเหลือ

อย่างไรก็ตามนี่คือการตั้งค่า

การติดตั้งแบบอักษรที่เหมาะสม

คุณจำเป็นต้องติดตั้งฟอนต์ลงในระบบของคุณด้วยสัญลักษณ์เช่นการแตกกิ่งสามเหลี่ยมใหญ่ ฯลฯ มันไม่ใช่สัญลักษณ์มาตรฐานดังนั้นคุณต้องติดตั้งฟอนต์ปะ คุณสามารถพบมากของตัวอักษร patched ที่นี่: https://github.com/powerline/fonts

.vimrc การตั้งค่า

จาก:help airline-customizationวางรหัสนี้ลงในไฟล์. vimrc ของคุณ:

" air-line
let g:airline_powerline_fonts = 1

if !exists('g:airline_symbols')
    let g:airline_symbols = {}
endif

" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '␤'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'

" airline symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''

unicode symbolsส่วนที่ไม่จำเป็นที่นี่ถ้าคุณมีตัวอักษร patched แต่มันช่วยให้คุณมีทางเลือกที่ดีถ้าคุณพยายามที่จะใช้ตัวอักษรอื่น ๆ ที่ไม่ได้มีสัญลักษณ์ที่เหมาะสม

การตั้งค่าแบบอักษร

หากคุณใช้ Vim ในเทอร์มินัลคุณควรเปลี่ยนไปใช้ฟอนต์ที่เหมาะสมในการกำหนดค่าโปรไฟล์ของเทอร์มินัลของคุณ

หากคุณใช้รุ่น GUI ของกลุ่ม (MacVim, GVim) คุณจะต้องตั้งตัวอักษรในตัวอย่างเช่น:.vimrc คุณสามารถหาข้อมูลเพิ่มเติมได้ที่นี่set guifont=DejaVu\ Sans:s12:help guifont


สวัสดีอเล็กซานเดอร์ ฉันทำตามคำแนะนำของเขา แต่ก็ยังไม่สามารถรับผลที่คาดหวัง: ตอนแรกติดตั้งแบบอักษรจากเว็บไซต์ของสายไฟฟ้า จากนั้นฉันทำการตั้งค่าในไฟล์. vimrc ไฟล์ .vimrc ของฉันได้รับร่วมกันในgist.github.com/geisonsn/641f13543b8b41fe2c12 ฉันใช้ปลั๊กอินตัวจัดการ Vundle
Geison Santos

คุณติดตั้งแบบอักษรนั้นในโปรแกรมแก้ไขของคุณหรือไม่ ถ้าคุณใช้เป็นกลุ่มใน terminal คุณควรติดตั้งแบบอักษรว่าใน terminal, หรือถ้าคุณใช้ GUI รุ่นของกลุ่ม (MacVim, GVim) คุณจะต้องตั้งตัวอักษรใน.vimrcแฟ้ม: set guifont=DejaVu\ Sans:s12ตัวอย่างเช่น: :help guifontข้อมูลเพิ่มเติมที่คุณสามารถหาที่นี่
Alexander Myshov

2
@AlexanderMyshov คุณมีบรรทัดการกำหนดค่าซ้ำที่จำเป็นต้องมีเพียงที่สองในทุก ๆ สอง
Vitor

1
เพิ่งสร้างบัญชีที่นี่ที่ vi.stackexchange เพื่อขอบคุณและโหวตคำตอบที่ยอดเยี่ยมของคุณ ขอบคุณที่ช่วยบรรเทาการค้นหาของฉันนับพันครั้ง
0decimal0

1
ผมคิดว่าควรจะมีการได้รับส่วนการตั้งค่าเริ่มต้นหรือขั้นต่ำ ... ผมไม่ทราบว่ามันจะได้รับการลบหรือไม่ แต่ผมได้เพิ่มคู่มือ Dummiesกับวิกิพีเดียเป็นกลุ่มสายการบินขึ้นอยู่กับคำตอบของฉัน
icc97

12

จากREADME :

การรวมเข้ากับฟอนต์ Powerline

เพื่อให้สัญลักษณ์ Powerline ดูดีคุณจะต้องติดตั้งแบบอักษรที่มีการปะแก้ คำแนะนำที่สามารถพบได้ในสายไฟฟ้าอย่างเป็นทางการเอกสาร แบบอักษรที่ถูกเตรียมไว้สามารถพบได้ในที่เก็บpowerline-fonts

สุดท้ายคุณสามารถเพิ่มตัวแปรอำนวยความสะดวกlet g:airline_powerline_fonts = 1ให้กับ vimrc ของคุณซึ่งจะเติมg:airline_symbolsพจนานุกรมโดยอัตโนมัติด้วยสัญลักษณ์ Powerline


1
ฉันพบว่าlet g:airline_powerline_fonts = 1ไม่เพียงพอ ด้วยเหตุผลบางอย่างนี้ยังไม่เติมโดยอัตโนมัติg:airline_symbolsเพื่อให้ฉันได้เพื่อเติมพจนานุกรมตนเองตามคำตอบที่อเล็กซานเด Myshov ของ
icc97

5

การดำเนินการนี้ใช้เวลาหลายชั่วโมงดังนั้นนี่เป็นคำแนะนำสำหรับ Dummies สำหรับ Fedora / Ubuntu พร้อมส่วนพิเศษสำหรับ Windows

อย่างแรกคือการหาว่านรกคือวงเล็บมุมที่แปลก แต่น่าดูที่ปรากฏในแถบสถานะของกลุ่มสายการบิน พื้นหลังคือสายการบินนั้นเป็นสายการบินรุ่นบริสุทธิ์ (ซึ่งเป็นงูใหญ่) และสายการบินใช้อักขระ UTF-8 เพื่อแทรกวงเล็บมุมเหล่านั้น ดังนั้นกลุ่มสายการบินก็ใช้อักขระ UTF-8 ตัวเดียวกัน

จากนั้นแม้ว่าคุณจะจัดการเพื่อติดตั้งมันดูน่าเกลียดกว่าที่คุณคาดหวังเพราะแบบอักษรไม่ทำงานอย่างเต็มที่

การกำหนดค่า Vim

ตรงข้ามกับคำแนะนำอย่างเป็นทางการแต่ฉันผิดไปเล็กน้อยในตอนท้ายซึ่งทำให้ฉันตั้งคำถามกับการติดตั้งแบบอักษรทั้งหมด ดังนั้นฉันขอแนะนำให้คุณได้รับการกำหนดค่านี้ก่อนแล้วถ้าคุณใช้แบบอักษรที่ทำงานมันน่าจะปรากฏขึ้นอย่างน่าอัศจรรย์

เคล็ดลับสุดท้ายคือการบังคับให้กลุ่มสายการบินใช้แบบอักษรที่ต้องการ ในเอกสารที่เป็นทางการมันก็ควรจะได้รับการเพิ่มในของคุณlet g:airline_powerline_fonts = 1 .vimrcอย่างไรก็ตามฉันทำอย่างนี้และไม่มีโชค มีข้อมูลเพิ่มเติม:help airline-customizationและช่วยให้คุณกำหนดการตั้งค่าได้ง่ายตามที่คุณต้องการในกรณี นี่คือซอสวิเศษสุดท้ายที่ฉันต้องการ ฉันไม่รู้ว่าทำไมสิ่งนี้ถึงไม่ถูกสร้างขึ้นโดยอัตโนมัติ คัดลอกและวางการตั้งค่าที่ระบุไว้ในคำตอบที่ได้รับการยอมรับอเล็กซานเด Myshov ที่นี่

Kitchen กำลังจมอยู่บน Fedora และ Ubuntu

นี่อาจเป็นวิธีแก้ปัญหา overkill แต่ก่อนอื่นคุณต้องทำให้มันใช้งานได้อย่างสม่ำเสมอก่อนที่จะทำให้มันง่ายขึ้น

  1. ติดตั้งฟอนต์ Powerline ทั่วไปsudo dnf install powerline-fonts(หรือsudo apt install fonts-powerline) - นี่ควรหมายความว่าคุณสามารถใช้ฟอนต์ใดก็ได้ที่ติดตั้งไว้แล้ว หากคุณไม่มีวิธีง่ายๆในการติดตั้งเช่น dnf / apt มีคำแนะนำสำหรับการทำด้วยตนเองเช่นhttps://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , เอกสารอย่างเป็นทางการมีคำแนะนำ ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation )

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

  2. หากฟอนต์ Powerline ทั่วไปใช้งานไม่ได้หรือหากคุณพยายามปรับปรุงสิ่งต่าง ๆ ที่คุณสามารถลองติดตั้งฟอนต์ 'แบบแพทช์' ได้แต่ละอันนี่ใช้เวลาสักครู่ในการคิด แต่คุณสามารถไปที่โฟลเดอร์ที่คุณต้องการในhttps: //github.com/powerline/fonts/และดาวน์โหลดแบบอักษรที่ฉันชอบมากที่สุดจากการทดสอบของฉันเป็นรหัสที่มาอักษร patched Pro จากนั้นเพียงเปิดไฟล์ฟอนต์ที่ดาวน์โหลดมาและคลิกที่ 'ติดตั้ง'

    หากคุณต้องการบรรทัดคำสั่งคุณสามารถติดตั้งแบบอักษรที่ได้รับการแก้ไขทั้งหมด :

     $ git clone https://github.com/powerline/fonts.git --depth=1
     $ fonts/install.sh
     $ rm -rf fonts
    

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

  3. ตรวจสอบว่าแบบอักษรสามารถระบุได้ในการตั้งค่าเทอร์มินัลเปิดเซสชันเทอร์มินัลของคุณใหม่หากคุณไม่มีแบบอักษรดังนั้นโปรดทราบว่าอาจมีสองตัวเลือกที่นี่:
    1. แบบอักษร Powerline ทั่วไปทำงานในกรณีที่คุณสามารถใช้แบบอักษรพื้นฐานเช่น DejaVu Sans Mono
    2. หากคุณไม่สามารถใช้งานฟอนต์ที่แพตช์แล้วที่คุณดาวน์โหลดด้านบนนั้นถูกต้องเช่น DejaVu ที่เทียบเท่าคือ 'DejaVu Sans Mono for Powerline'

Tweaking Linux

เมื่อฉันทำให้มันใช้งานได้เป็นครั้งแรกมันก็น่าผิดหวังจริง ๆ เพราะไอคอนไม่ตรงทั้งหมด แต่ตามคำถามที่พบบ่อยเราจำเป็นต้องทำการปรับแต่ง ฉันเริ่มด้วย Inconsolata เพราะนี่จะทำให้ฉันมีตัวอักษรที่สอดคล้องกันใน Windows และ Linux คุณสามารถติดตั้งฟอนต์ทั่วไปได้อย่างง่ายดายบน Ubuntu ด้วยapt install fonts-inconsolataนี่คือสิ่งที่ฉันได้รับ:

ป้อนคำอธิบายรูปภาพที่นี่

ลูกศรมีขนาดใหญ่เกินไปและเลื่อนขึ้นอย่างน่าเกลียด

จากนั้นฉันก็ลองแบบอักษร Ubuntu อื่น ๆ ที่เป็นค่าเริ่มต้นทั้งหมด

โมโน Ubuntu:

ป้อนคำอธิบายรูปภาพที่นี่

DejaVu Sans Mono:

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือตำแหน่งในแนวตั้งที่ถูกต้อง แต่ลูกศรด้านขวามีช่องว่างหลังจากนั้น

ทำไมคุณถึงใช้ฟอนต์ที่ถูกปะแก้

การใช้แบบอักษรเริ่มต้นอาศัยแบบอักษร Powerline เพื่อแก้ไขแบบอักษรที่มีอยู่โดยอัตโนมัติ อย่างไรก็ตามคุณสามารถปรับปรุงรูปลักษณ์ของสัญลักษณ์สายการบินได้โดยใช้แบบอักษรที่มีการปะแก้ สิ่งเหล่านี้เทียบเท่ากับการใช้ฟอนต์แบบแพตช์

ฉันแสดงสิ่งเหล่านี้ทั้งหมดด้วยขนาดตัวอักษร 16 ตามที่ฉันต้องการใช้แบบอักษรขนาดใหญ่ขึ้นรวมถึงแสดงปัญหาเล็กน้อย

Inconsolata สำหรับ Powerline:

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้ยังคงมีปัญหาอยู่ แต่เกือบทั้งหมดได้รับการแก้ไขด้วยรูปแบบ dz

Inconsolata-dz สำหรับ Powerline dz:

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้มีรอยแตกของเส้นผมที่ลูกศรด้านขวา แต่ไม่สมบูรณ์แบบ

Ubuntu Powerline อนุพันธ์โมโนปกติ:

ป้อนคำอธิบายรูปภาพที่นี่

เรื่องนี้ยังมีปัญหาที่น่ารำคาญ

DejaVu Sans Mono สำหรับ Powerline Book:

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้มีรอยแตกของเส้นผมที่ลูกศรด้านขวา แต่ไม่สมบูรณ์แบบ ฉันชอบ Inconsolata-dz จริง ๆ เพราะไอคอน LN อ่านได้ง่ายกว่า

ที่ด้านบนของรายการเหล่านี้ฉันลองแบบอักษรที่มีอยู่เกือบทั้งหมดและรายการโปรดอื่น ๆ ของฉันคือ Source Code Pro

รหัสแหล่งที่มา Pro สำหรับสื่อ Powerline

ป้อนคำอธิบายรูปภาพที่นี่

นี่เป็นปัญหาที่ขนาด 16 ซึ่งลูกศรใหญ่เกินไป แต่ที่ขนาด 14 มันแทบจะมองไม่เห็นเลย ไอคอนสาขาและ LN ไหลล้นไปด้านล่าง แต่อย่างใดนี่ไม่รบกวนฉัน

Source Code Pro สำหรับ Powerline Light

ป้อนคำอธิบายรูปภาพที่นี่

การทำเช่นนี้จะช่วยแก้ไขปัญหาของขนาดลูกศรของฟอนต์ขนาดกลางและทำให้มันสมบูรณ์แบบแม้จะมีไอคอนล้นอยู่ก็ตาม

รหัสแหล่งที่มา Pro

เมื่อฉันตรวจสอบตัวเลือกสำหรับแบบอักษรมีบางสิ่งที่คุณสังเกตเห็นแพทช์แบบอักษรบางตัวมีรายละเอียดขั้นต่ำแน่นอนถ้าคุณเปรียบเทียบสิ่งนี้กับรายการ Source Code Pro มันค่อนข้างสำคัญ Source Code Pro เป็นแบบอักษรที่มีรายละเอียดและสมบูรณ์ซึ่งได้รับการพิจารณาให้ใช้งานได้ในหลากหลายสถานการณ์ ความสมบูรณ์แบบนี้มีความสำคัญสำหรับกรณีขอบ

ใช้เป็นฟอนต์ที่มีการติดตั้งมันแสดงแถบบาร์ของสายการบินได้อย่างสมบูรณ์แบบ ประโยชน์ของทางเลือกมากมายคือการใช้ฟอนต์แบบอ่อนซึ่งมีการแสดงผลที่ดียิ่งขึ้นของแถบเสียงเรียกเข้าของสายการบิน

รหัสที่มาภายใต้ Pro ยังมีการพัฒนาอย่างต่อเนื่องในการเปิดของ Adobe ที่เก็บ

การจัดการดอกไม้ที่บอบบางของ Windows (สมมติว่า GVim)

แบบอักษร Powerline ไม่ทำงานกับ Windows ดังนั้นทางเลือกเดียวของคุณคือใช้แบบอักษรที่มีการปะแก้ นอกจากนี้สคริปต์ทุบตีในการติดตั้งแบบอักษรทั้งหมดไม่ทำงานดังนั้นคุณต้องทำเหมือนกันgit cloneแต่จากนั้นไปที่แต่ละไดเรกทอรีแต่ละไดเรกทอรีและติดตั้งแบบอักษรที่คุณต้องการ

ฉันดาวน์โหลดฟอนต์ที่แพตช์โค้ดโปรมาทั้งหมดแล้วติดตั้ง แม้ว่าคุณจะติดตั้งเป็นฟอนต์แต่ละตัวพวกมันจะถูกเพิ่มลงใน Windows เป็นฟอนต์เดี่ยว 'ซอร์สโค้ด Pro สำหรับ Powerline' พร้อมแอตทริบิวต์แยกต่างหากเพื่อระบุน้ำหนัก

จากนั้น (สมมติว่าGVim ) เพิ่มสิ่งนี้ใน.vimrc:

set guifont=Source\ Code\ Pro\ for\ Powerline:h15:cANSI

หากคุณต้องการใช้แบบอักษร 'แสง' ใช้สิ่งนี้

set guifont=Source_Code_Pro_Light:h15:cANSI

ไม่สมเหตุสมผลเนื่องจากไม่จำเป็นต้องรวม 'สำหรับ Powerline' แต่เป็นวิธีการทำงาน (ฉันคิดออกโดยการตั้งค่าแบบอักษรใน GVim แล้วใช้set guifont?เพื่อตรวจสอบสิ่งที่ GVim ใช้) นอกจากนี้ฉันยังเห็นว่าเมื่อคุณใช้ GVim เพื่อเปลี่ยนแบบอักษรการแสดงแบบอักษรไม่ดีมาก ฉันเริ่มลดฟอนต์ Light ในตอนแรกเพราะเมื่อฉันเปลี่ยนโดยใช้เมนู GVim มันแสดงผลไม่ดี แต่ถ้าคุณใส่ด้านล่างลงในของคุณ.vimrcแล้วรีสตาร์ท GVim มันควรจะดูน่ารัก

สิ่งที่ดีคือคุณสามารถตั้งค่าพรอมต์ DOS / Powershell เป็นแบบอักษรเดียวกันได้ จากนั้นด้วยฟอนต์แบบแพตช์มันเป็นไปได้ที่จะทำให้ Powerline ทำงานใน Vim ปกติภายใน DOS

หากคุณไม่เชื่อฉันนี่มันทำงานใน Vim ใน Powershell:

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


3

ฉันมีปัญหาเดียวกันหลังจากติดตั้ง Vim ใหม่: แบบอักษรที่ปะเก่าของฉันไม่สามารถใช้งานร่วมกับสัญลักษณ์สายการบินใหม่ได้

สัญลักษณ์เก่ายังกล่าวถึงในวิธีใช้ ( :help airline-customization):

" old vim-powerline symbols
let g:airline_left_sep = '⮀'
let g:airline_left_alt_sep = '⮁'
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'
let g:airline_symbols.branch = '⭠'
let g:airline_symbols.readonly = '⭤'
let g:airline_symbols.linenr = '⭡'

หลังจากที่ฉันใส่บรรทัดเหล่านี้ใน vimrc ของฉันทุกอย่างเป็นไปด้วยดี


upvoted! ขณะนี้สิ่งที่ดีที่สุดสำหรับฉันมีเพียงสัญลักษณ์เหล่านี้เท่านั้นที่สูงขึ้นเล็กน้อย
ryenus

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