Phông chữ được vá Powerline trên OSX 10.9.3 - iTerm2 & Chrome


18

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.

  1. 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?
  2. 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ị:

Chủ đề Agnoster
(nguồn: staticflickr.com )

Tài liệu Powerline
(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:

iTerm2 & zsh
(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:

hãng hàng không
(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

Câu trả lời:


12

Chỉ cần cài đặt phông chữ Input Mono , hỗ trợ đầy đủ cho powerline.

Để làm việc sau đây, phông chữ Mono đầu vào phải là phiên bản 1.1. Bạn có thể kiểm tra phiên bản phông chữ bằng cách vào Font Book → View → Show Font Infovà xem số phiên bản.

Với Terminal.app hoạt động ra khỏi hộp. Chỉ cần chọn phông chữ và bạn đã sẵn sàng.

Với iTerm2, bạn phải sửa đổi một số điều:

  • Chuyển đến Tùy chọn → Cấu hình → Văn bản và bỏ chọn `Sử dụng phông chữ khác cho văn bản không phải ASCII.
  • Ngay phía trên, nhấp vào Change Fontvà chọn Mono đầu vào. Ngoài ra, bạn phải thay đổi Character Spacing → Verticalđến 110%. Có vẻ như Terminal và iTerm2 kết xuất khoảng cách ký tự theo một cách khác.

Bỏ chọn Use a different font for non-ASCII text.đã tạo ra tất cả sự khác biệt cho tôi.
camomileCase

2

Có thể bạn chưa cập nhật bash. OS X đi kèm bash < 4, vì vậy bạn không thể printfhoặc echo -eunicode mã.

Các bước để cập nhật bashvới homebrew:

  1. brew install bash
  2. Tìm tiền tố của bashcài đặt bởi homebrew, của tôi là /usr/local/Cellar/bash/4.3.30/, vì vậy nhị phân bash của tôi là /usr/local/Cellar/bash/4.3.30/bin/bash.
  3. sudo (vim|nano|emacs|etc) /etc/shells
  4. Nhận đường dẫn bash đã nói và thêm nó vào cuối danh sách (hoặc thay thế /usr/bin, nếu bạn thực sự dũng cảm.)
  5. chsh
  6. Thay đổi Shell:dòng để phù hợp với bashđường dẫn của bạn .
  7. Bắt đầu lại nhiệm kỳ của bạn.

Và bạn nên được sửa chữa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.