Tôi đang tìm kiếm một giải pháp hiệu quả để hiển thị các ký tự powerline trên OSX trong iTerm2 và Chrome. Có rất nhiều tài liệu xung quanh tôi đã cố gắng sử dụng một số phương pháp, cho đến nay dường như không có phương pháp nào hoạt động chính xác (mặc dù phông chữ được in sẵn với fontbook hoạt động một phần ). Chi tiết bao gồm bên dưới.
- Có phương pháp làm việc nào để glyphs powerline hiển thị chính xác trong iTerm2 trên OSX 10.9.3 không?
- Các glyph powerline có nên được hiển thị chính xác trong các trang web? Bất cứ ý tưởng tại sao họ không và làm thế nào tôi có thể sửa chữa nó?
Làm thế nào để kết xuất các ký tự này hoạt động (ở cấp độ hệ thống / ứng dụng)? Nó khác nhau từ ứng dụng này đến ứng dụng khác? Trong chrome, nếu phông chữ hiện tại không chứa các ràng buộc cho glyphs, chrome sẽ cố gắng tìm các liên kết trong một phông chữ khác có trên hệ thống và sử dụng các liên kết đó? Có cách nào để cung cấp các ràng buộc cho các ký tự unicode này ở cấp hệ thống để chúng sẽ kết xuất bằng phông chữ đó, bất kể phông chữ đang được sử dụng không?
Ký tự vùng riêng Unicode
Nếu tôi hiểu cách hoạt động của các phông chữ được vá tương thích với đường dây điện, chúng sẽ liên kết đồ họa có thể mở rộng với các giá trị cụ thể trong vùng sử dụng riêng 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
Để kiểm tra glyphs trong một thiết bị đầu cuối, tôi đã đọc rằng điều này sẽ hoạt động:
echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"
Tuy nhiên, nó không hoạt động đối với tôi (OSX 10.9.3, iTerm2, zsh) ngay cả với phông chữ được vá bằng đường dây điện được cài đặt và iTerm2 được cấu hình để sử dụng một trong những phông chữ đó.
Tôi đã thử một số phương pháp để cài đặt các phông chữ được vá:
FontBook & Fontatched
Tôi đã tải xuống các phông chữ từ Localtog / powerline-font và cài đặt chúng bằng FontBook. Trên cùng một trang, một số glyphs kết xuất nhưng một số khác thì không. Trên các trang khác, không có glyphs nào hiển thị:
(nguồn: staticflickr.com )
(nguồn: staticflickr.com )
Trong iTerm2 (điều này xảy ra với tất cả các phông chữ powerline tôi đã kiểm tra), một số ký tự hiển thị, nhưng một số khác thì không:
(nguồn: staticflickr.com )
Trong macvim (thiết bị đầu cuối) có cài đặt vim-Airlines, một số ký tự hiển thị, nhưng một số kết xuất không chính xác:
(nguồn: staticflickr.com )
Phông chữ
Tôi đã gỡ cài đặt tất cả các phông chữ được vá bằng đường dây điện, cài đặt fontconfig với homebrew, cài đặt phông chữ powerline và xây dựng lại bộ đệm phông chữ:
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
Phông chữ được phát hiện và fontconfig cho biết nó đã được cài đặt, tuy nhiên nó không xuất hiện trong FontBook và tôi không thể chọn nó trong iTerm2.
Sau khi chạy nó, tôi xóa các phông chữ, chạy lại fc-cache và gỡ cài đặt fontconfig.
Tôi hiện đang sử dụng các phông chữ được cài đặt sẵn trong fontbook, một phần hoạt động, nhưng tôi hy vọng ai đó có thể giúp tôi hiểu vấn đề tốt hơn một chút để tôi có thể tìm ra giải pháp hiệu quả.
Cập nhật
Phương pháp này dường như làm cho mọi thứ hoạt động trong iTerm2, mặc dù tôi vẫn không chắc chắn về các vấn đề kết xuất hệ thống / chrome.
Phông chữ
Cài đặt fontforge với các ràng buộc python:
brew install fontforge --with-python
Cài đặt 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
Tải xuống, vá và cài đặt phông chữ:
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.
đã tạo ra tất cả sự khác biệt cho tôi.