Bagaimana cara memperbaiki simbol bilah status di plugin Maskapai?

64

Saya memasang plugin Airline untuk memiliki bilah status khusus, seperti terlihat pada gambar di bawah ini:

Masukkan deskripsi gambar di sini

Namun, bilah status saya sedang menyajikan simbol <, >>dan <. Bagaimana saya memperbaiki masalah ini?

Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

Geison Santos
sumber
Gunakan everythingfonts.com/otf-to-ttf untuk mengonversi font menjadi ttf, Contoh: Versi XShell yang lebih lama tidak mendukung otf.
bhathiya-perera
Untuk kompatibilitas maksimum saya tinggalkan airline_powerline_fonts. Saya tidak berpikir mereka benar-benar berguna.
qwr

Jawaban:

50

Sebenarnya saya tidak mengerti mengapa pertanyaan Anda ditolak. Jujur pada awalnya saya juga tidak mengerti apa yang harus dilakukan untuk mendapatkan toolbar yang terlihat bagus ini. Ya saya tahu tentang README dan hal-hal lain, tetapi saya pikir harus ada bagian getting startedatau minimum settingsdalam file bantuan.

Pokoknya di sini adalah pengaturannya.

Menginstal font yang sesuai

Anda perlu menginstal font ke sistem Anda dengan simbol seperti percabangan, segitiga besar dll. Mereka bukan simbol standar sehingga Anda perlu menginstal font yang ditambal. Anda dapat menemukan banyak font yang ditambal di sini: https://github.com/powerline/fonts .

.vimrc pengaturan

Dari :help airline-customization, tempatkan kode ini ke file .vimrc Anda:

" 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 = ''

The unicode symbolsBagian ini tidak perlu di sini jika Anda sudah memiliki font ditambal tetapi memberi Anda mundur baik jika Anda mencoba untuk menggunakan font lain yang tidak memiliki simbol yang sesuai.

Pengaturan font

Jika Anda menggunakan terminal Vim di Anda harus beralih ke font yang sesuai di preferensi profil terminal Anda.

Jika Anda menggunakan versi gui dari Vim (MacVim, GVim) Anda perlu mengatur font di .vimrc, misalnya: set guifont=DejaVu\ Sans:s12. Anda dapat menemukan informasi lebih lanjut di sini :help guifont.

Alexander Myshov
sumber
Halo, Alexander. Saya mengikuti instruksinya, tetapi masih tidak bisa mendapatkan hasil yang diharapkan: pada awalnya menginstal font dari situs powerline. Kemudian saya membuat pengaturan dalam file .vimrc. File .vimrc saya telah dibagikan di gist.github.com/geisonsn/641f13543b8b41fe2c12 . Saya menggunakan plugin Vundle manager.
Geison Santos
Apakah Anda menginstal font itu di editor Anda? Jika Anda menggunakan vim di terminal Anda harus menginstal font yang di terminal, atau jika Anda menggunakan gui-versi vim (MacVim, GVim) Anda perlu mengatur font di .vimrc-file, misalnya: set guifont=DejaVu\ Sans:s12. Informasi lebih lanjut dapat Anda temukan di sini :help guifont.
Alexander Myshov
2
@AlexanderMyshov Anda telah mengulangi garis konfigurasi, di mana hanya yang kedua dari setiap dua yang diperlukan.
Vitor
1
Baru saja membuat akun di sini di vi.stackexchange untuk mengucapkan terima kasih dan memperbaiki jawaban Anda yang luar biasa ini. Terima kasih telah melegakan ribuan pencarian saya.
0decimal0
1
Saya pikir harus ada bagian persiapan atau pengaturan minimum ... Saya tidak tahu apakah itu akan dihapus atau tidak, tetapi saya telah menambahkan Panduan Dummies ke wiki vim-airline berdasarkan jawaban saya .
icc97
12

Dari README :

Terintegrasi dengan font powerline

Agar simbol powerline terlihat bagus, Anda perlu menginstal font yang ditambal. Instruksi dapat ditemukan di dokumentasi saluran listrik resmi . Fon yang sudah disiapkan dapat ditemukan di repositori powerline-fonts .

Terakhir, Anda dapat menambahkan variabel kenyamanan let g:airline_powerline_fonts = 1ke vimrc Anda yang secara otomatis akan mengisi g:airline_symbolskamus dengan simbol powerline.

lcd047
sumber
1
Saya menemukan let g:airline_powerline_fonts = 1itu tidak cukup. Untuk beberapa alasan ini masih belum secara otomatis mengisi g:airline_symbols, jadi saya harus secara manual mengisi kamus sesuai jawaban Alexander Myshov .
icc97
5

Ini membutuhkan waktu berjam-jam untuk mencari tahu, jadi ini lebih dari panduan boneka untuk Fedora / Ubuntu, dengan bagian khusus untuk Windows.

Yang pertama adalah mencari tahu apa itu kurung sudut aneh tapi bagus yang muncul di bilah status vim-airline. Latar belakangnya adalah maskapai itu adalah versi murni powerline vim (yang merupakan python), dan powerline menggunakan karakter UTF-8 untuk memasukkan kurung sudut tersebut. Jadi vim-airline hanya menggunakan karakter UTF-8 yang sama.

Kemudian bahkan jika Anda berhasil menginstalnya, mereka terlihat lebih jelek daripada yang Anda harapkan karena font tidak sepenuhnya berfungsi.

Mengkonfigurasi Vim

Ini bertentangan dengan instruksi resmi, tetapi saya memiliki kesalahan ini pada akhirnya yang membuat saya mempertanyakan semua instalasi font. Jadi saya sarankan Anda mengkonfigurasikan ini terlebih dahulu dan kemudian jika Anda mendapatkan font yang berfungsi itu akan muncul secara ajaib.

Trik terakhir adalah memaksa vim-airline untuk menggunakan font yang dibutuhkan. Dalam dokumentasi resmi itu seharusnya hanya menambahkan let g:airline_powerline_fonts = 1di .vimrc. Namun saya melakukan ini dan tidak berhasil. Ada lebih banyak informasi di :help airline-customizationdan yang memberi Anda beberapa pengaturan konfigurasi sederhana yang Anda butuhkan, untuk berjaga-jaga. Ini adalah saus ajaib terakhir yang saya butuhkan. Saya tidak tahu mengapa ini tidak dibuat secara otomatis. Salin dan tempel pengaturan yang disebutkan dalam jawaban yang diterima Alexander Myshov di sini .

Dapur menenggelamkannya di Fedora dan Ubuntu

Ini mungkin solusi yang berlebihan, tetapi pertama-tama Anda harus membuatnya bekerja secara konsisten sebelum Anda dapat menyederhanakannya.

  1. Instal font powerline umum sudo dnf install powerline-fonts(atau sudo apt install fonts-powerline) - ini berarti Anda dapat menggunakan font apa saja yang sudah Anda instal. Jika Anda tidak memiliki cara mudah untuk menginstal seperti dnf / apt maka ada instruksi untuk melakukannya secara manual misalnya https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , juga dokumentasi resmi memiliki instruksi ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ).

    Sekarang tutup terminal Anda kembali terbuka dan periksa apakah font simbol Powerline tersedia jika Anda mengedit preferensi terminal dan mengatur font khusus. Anda tidak ingin menggunakan font secara langsung, cukup periksa apakah tersedia . Sekarang coba buka Vim dan lihat apakah Anda memiliki simbol yang bagus.

  2. Jika font powerline umum tidak berfungsi atau jika Anda mencoba untuk memperbaiki hal-hal yang Anda dapat mencoba menginstal font 'tambalan' individual, ini membutuhkan waktu beberapa saat untuk mencari tahu, tetapi Anda benar-benar dapat langsung pergi ke folder yang Anda inginkan di https: //github.com/powerline/fonts/ dan mengunduhnya, font yang paling saya sukai dari tes saya adalah font Patch Source Code Pro . Kemudian buka saja file font yang diunduh dan klik 'Instal'.

    Jika Anda lebih suka baris perintah, Anda dapat menginstal semua font yang ditambal :

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

    Ini akan menginstal semua font mono yang ditambal, tetapi kemudian ini memberi Anda kesempatan untuk menjelajahi font yang mungkin. Daftar font yang dipasangnya adalah daftar font kode sumber yang tersedia yang sangat mengagumkan. Ini juga berarti Anda tidak perlu repot menginstal masing-masing font yang disertakan.

  3. Pastikan font dapat ditentukan dalam preferensi terminal, buka kembali sesi terminal Anda jika Anda kehilangan font, jadi perhatikan ada dua opsi di sini:
    1. Font powerline umum berfungsi dalam hal ini Anda hanya dapat menggunakan font dasar misalnya DejaVu Sans Mono
    2. Jika Anda tidak bisa menggunakan font tambalan yang Anda unduh di atas harus benar, mis. Yang setara untuk DejaVu adalah 'DejaVu Sans Mono for Powerline'.

Tweaking Linux

Begitu saya benar-benar membuatnya bekerja untuk pertama kalinya, itu benar-benar mengecewakan karena ikon tidak sepenuhnya cocok. Tetapi sesuai dengan FAQ kita perlu melakukan beberapa penyesuaian. Saya mulai dengan Inconsolata karena ini memberi saya font yang konsisten di Windows dan Linux. Anda dapat menginstal font umum dengan mudah di Ubuntu dengan apt install fonts-inconsolataIni yang saya dapat:

masukkan deskripsi gambar di sini

Panahnya terlalu besar dan digeser ke atas dengan cara yang jelek.

Kemudian saya mencoba semua font Ubuntu default lainnya.

Ubuntu mono:

masukkan deskripsi gambar di sini

DejaVu Sans Mono:

masukkan deskripsi gambar di sini

Ini memiliki posisi vertikal yang benar tetapi panah sisi kanan memiliki ruang setelah mereka.

Mengapa Anda menggunakan font yang ditambal

Menggunakan font default bergantung pada font Powerline untuk secara otomatis menambal font yang ada. Namun Anda dapat meningkatkan tampilan simbol maskapai dengan menggunakan font yang ditambal. Ini adalah setara menggunakan font yang ditambal.

Saya menampilkan semua ini pada ukuran font 16 karena saya suka menggunakan font yang lebih besar, ditambah lagi muncul masalah kecil.

Inconsolata untuk Powerline:

masukkan deskripsi gambar di sini

Ini masih memiliki masalah, tetapi mereka hampir semuanya diselesaikan oleh variasi dz.

Inconsolata-dz untuk Powerline dz:

masukkan deskripsi gambar di sini

Ini memiliki fraktur garis rambut di panah kanan, tetapi sebaliknya sempurna.

Ubuntu Mono derivative Powerline Reguler:

masukkan deskripsi gambar di sini

Ini masih memiliki masalah yang mengganggu.

DejaVu Sans Mono untuk Powerline Book:

masukkan deskripsi gambar di sini

Ini memiliki fraktur garis rambut di panah kanan, tetapi sebaliknya sempurna. Saya sebenarnya lebih suka ke Inconsolata-dz karena ikon LN lebih mudah dibaca.

Di atas pelanggan tetap ini, saya mencoba hampir semua font yang tersedia dan favorit saya yang lain adalah Source Code Pro.

Source Code Pro untuk Powerline Medium

masukkan deskripsi gambar di sini

Ini memang memiliki masalah pada ukuran 16 di mana panah terlalu besar, tetapi pada ukuran 14 itu hampir tidak terlihat. Ikon cabang dan LN meluap ke bawah, tapi entah bagaimana ini tidak mengganggu saya.

Kode Sumber Pro untuk Lampu Powerline

masukkan deskripsi gambar di sini

Ini hampir sepenuhnya menyelesaikan masalah ukuran panah font medium dan membuatnya sempurna, meskipun masih ada ikon meluap.

Kode Sumber Pro

Ketika saya menyelidiki opsi untuk font ada beberapa hal yang Anda perhatikan, beberapa tambalan font memiliki minimum absolut dalam detail, jika Anda membandingkannya dengan daftar Source Code Pro itu cukup signifikan. Source Code Pro adalah font yang sangat terperinci dan lengkap yang telah dianggap berfungsi dalam berbagai skenario. Jenis kelengkapan seperti ini penting untuk kasus tepi.

Digunakan sebagai font yang ditambal itu hampir sempurna menampilkan bar vim-airline. Manfaat dari begitu banyak alternatif adalah penggunaan font ringan yang memiliki tampilan bar vim-airline yang lebih baik.

Source Code Pro juga sedang dikembangkan terbuka pada repositori Github Adobe .

Menangani bunga halus Windows (dengan asumsi GVim)

Font Powerline tidak berfungsi dengan Windows sehingga satu-satunya pilihan Anda adalah menggunakan font yang ditambal. Juga skrip bash untuk menginstal semua font tidak berfungsi, jadi Anda harus melakukan hal yang sama git clonetetapi kemudian masuk ke masing-masing direktori individu dan instal font yang Anda inginkan.

Saya mengunduh semua font Kode Sumber Pro yang ditambal dan memasangnya. Meskipun Anda menginstalnya sebagai font tersendiri, mereka ditambahkan ke Windows sebagai font tunggal 'Source Code Pro for Powerline' dengan atribut terpisah untuk menentukan bobotnya.

Lalu (dengan asumsi GVim ) tambahkan ini ke .vimrc:

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

Jika Anda ingin menggunakan font 'Ringan' gunakan ini.

set guifont=Source_Code_Pro_Light:h15:cANSI

Itu tidak masuk akal karena tidak perlu memasukkan 'untuk Powerline', tapi begitulah cara kerjanya (saya mengetahuinya dengan mengatur font di GVim dan kemudian menggunakan set guifont?untuk memeriksa apa yang digunakan GVim). Saya juga melihat bahwa ketika Anda menggunakan GVim untuk mengganti font, rendering font tidak terlalu baik. Saya awalnya mengabaikan font Light karena ketika saya beralih menggunakan menu GVim, hasilnya buruk, tetapi jika Anda memasukkan yang di bawah ini ke dalam .vimrcdan me-restart GVim itu akan terlihat indah.

Yang juga menyenangkan adalah Anda dapat mengatur prompt DOS / Powershell ke font yang sama. Kemudian dengan font yang ditambal juga memungkinkan Powerline bekerja di Vim biasa dalam DOS.

Jika Anda tidak percaya kepada saya, ini dia bekerja di Vim di Powershell:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

icc97
sumber
3

Saya memiliki masalah yang sama setelah menginstal ulang Vim: font tambalan lama saya tidak kompatibel dengan simbol maskapai baru.

Simbol lama juga disebutkan dalam bantuan ( :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 = '⭡'

Setelah saya meletakkan baris-baris ini di vimrc saya, semuanya berjalan dengan baik.

Mattia72
sumber
terbalik! saat ini yang terbaik untuk saya, hanya simbol-simbol ini sedikit lebih tinggi
ryenus
1
Anda harus menentukan kamus terlebih dahulu: misalkan g: airline_symbols = {}
PerseP