Saya mencari solusi yang berfungsi untuk merender karakter powerline di OSX di iTerm2 dan Chrome. Ada banyak dokumentasi di sekitar saya telah berusaha untuk menggunakan beberapa metode, sejauh ini tidak ada yang berfungsi dengan benar (meskipun font yang dilengkapi dengan fontbook sebagian berfungsi). Detailnya termasuk di bawah ini.
- Apakah ada metode yang berfungsi untuk membuat mesin terbang Powerline untuk membuat dengan benar di iTerm2 pada OSX 10.9.3?
- Haruskah mesin terbang powerline rendering dengan benar di halaman web? Adakah yang tahu mengapa mereka tidak dan bagaimana cara memperbaikinya?
Bagaimana cara rendering karakter ini bekerja (pada level sistem / aplikasi)? Apakah ini berbeda dari satu aplikasi ke aplikasi lainnya? Di chrome, jika font saat ini tidak mengandung binding untuk mesin terbang, akankah chrome berusaha menemukan binding dalam font lain yang ada pada sistem dan menggunakannya? Apakah ada cara untuk memberikan binding untuk karakter unicode ini pada tingkat sistem sehingga mereka akan membuat menggunakan font itu, terlepas dari font yang sedang digunakan?
Karakter Area Pribadi Unicode
Jika saya memahami cara font tambalan yang kompatibel dengan powerline bekerja, mereka mengikat grafik yang dapat diskalakan ke nilai tertentu di area penggunaan pribadi unicode:
U+E0A0 Version control branch
U+E0A1 LN (line) symbol
U+E0A2 Closed padlock
U+E0B0 Rightwards black arrowhead
U+E0B1 Rightwards arrowhead
U+E0B2 Leftwards black arrowhead
U+E0B3 Leftwards arrowhead
Untuk menguji mesin terbang di terminal, saya telah membaca bahwa ini seharusnya bekerja:
echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"
Namun itu tidak bekerja untuk saya (OSX 10.9.3, iTerm2, zsh) bahkan dengan font powerline-patched yang diinstal dan iTerm2 dikonfigurasi untuk menggunakan salah satu font tersebut.
Saya sudah mencoba beberapa metode untuk menginstal font yang ditambal:
FontBook & Font yang Dipersiapkan
Saya mengunduh font dari Localtog / powerline-fonts dan menginstalnya menggunakan FontBook. Pada halaman yang sama, beberapa mesin terbang membuat tetapi yang lain tidak. Di halaman lain, tidak ada mesin terbang yang membuat:
(sumber: staticflickr.com )
(sumber: staticflickr.com )
Di iTerm2 (ini terjadi dengan semua font powerline yang saya uji), beberapa karakter di-render, tetapi yang lain tidak:
(sumber: staticflickr.com )
Dalam macvim (terminal) dengan vim-airline diinstal, beberapa karakter membuat, tetapi beberapa membuat salah:
(sumber: staticflickr.com )
Konfigurasi font
Saya mencopot semua font powerline-patched, menginstal fontconfig dengan homebrew, menginstal font powerline, dan membangun kembali cache font:
wget -P ~/.fonts/ https://github.com/Lokaltog/powerline/raw/develop/font/PowerlineSymbols.otf
wget -P ~/.config/fontconfig/conf.d/ https://github.com/Lokaltog/powerline/raw/develop/font/10-powerline-symbols.conf
fc-cache -vf ~/.fonts
Font terdeteksi dan fontconfig mengatakan itu diinstal, namun tidak muncul di FontBook dan saya tidak dapat memilihnya di iTerm2.
Setelah menjalankan ini, saya menghapus font, reran fc-cache, dan menghapus fontconfig.
Saat ini saya menggunakan font pracetak yang dipasang di fontbook, yang sebagian berfungsi, tetapi saya berharap seseorang dapat membantu saya memahami masalah ini sedikit lebih baik sehingga saya dapat menemukan solusi yang berfungsi.
Memperbarui
Metode ini tampaknya membuat semuanya berfungsi di iTerm2, meskipun saya masih tidak yakin tentang masalah rendering chrome / sistem.
FontForge
Instal fontforge dengan binding python:
brew install fontforge --with-python
Pasang powerline-fontpatcher:
mkdir -p ~/.local/src
git clone https://github.com/Lokaltog/powerline-fontpatcher.git ~/.local/src/powerline-fontpatcher
cd ~/.local/src/powerline-fontpatcher && python setup.py install && cd
export powerline_symbols=~/.local/src/powerline-fontpatcher/fonts/powerline-symbols.sfd
Unduh, tempel & pasang font:
wget http://sourceforge.net/projects/sourcecodepro.adobe/files/SourceCodePro_FontsOnly-1.017.zip
unzip SourceCodePro_FontsOnly-1.017.zip
find SourceCodePro_FontsOnly-1.017/TTF -name \*.ttf -exec powerline-fontpatcher --source-font=$powerline_symbols --no-rename {} \;
mv *.ttf /Library/Fonts
Use a different font for non-ASCII text.
membuat semua perbedaan bagi saya.