OSX 10.9.3의 Powerline 패치 글꼴-iTerm2 및 Chrome 읽었습니다. echo -e “\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3” 그러나

iTerm2 및 Chrome의 OSX에서 전력선 문자를 렌더링하는 효과적인 솔루션을 찾고 있습니다. 여러 가지 방법을 사용하려고 시도한 문서가 많이 있지만 지금까지는 제대로 작동하지 않는 것 같습니다 (폰트 북이있는 사전 패치 된 글꼴은 부분적으로 작동 함). 자세한 내용은 아래에 포함되어 있습니다.

  1. OSX 10.9.3의 iTerm2에서 전력선 글리프를 올바르게 렌더링하는 효과적인 방법이 있습니까?
  2. 웹 페이지에서 전력선 글리프가 올바르게 렌더링되어야합니까? 왜 그들이 아니고 어떻게 해결할 수 있습니까?

이러한 캐릭터의 렌더링은 어떻게 작동합니까 (시스템 / 애플리케이션 레벨에서)? 응용 프로그램마다 다릅니 까? 크롬에서 현재 글꼴에 글리프에 대한 바인딩이 포함되어 있지 않으면 크롬은 시스템에있는 다른 글꼴에서 바인딩을 찾아서 사용하려고합니까? 이 유니 코드 문자를 시스템 수준에서 바인딩하여 사용중인 글꼴에 관계없이 해당 글꼴을 사용하여 렌더링 할 수있는 방법이 있습니까?

유니 코드 개인 영역 문자

전력선 호환 패치 글꼴이 작동하는 방식을 이해하면 확장 가능한 그래픽을 유니 코드 개인 사용 영역의 특정 값에 바인딩합니다.

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

터미널에서 글리프를 테스트하기 위해 이것이 작동해야한다는 것을 읽었습니다.

echo -e "\ue0a0\ue0a1\ue0a2\ue0b0\ue0b1\ue0b2\ue0b3"

그러나 전력선 패치 글꼴이 설치되어 있고 해당 글꼴 중 하나를 사용하도록 iTerm2가 구성되어 있어도 나 (OSX 10.9.3, iTerm2, zsh)에서는 작동하지 않습니다.

패치 된 글꼴을 설치하는 몇 가지 방법을 시도했습니다.

폰트 북 및 프리 패치 폰트

Localtog / powerline- fonts에서 글꼴을 다운로드 하여 FontBook을 사용하여 설치했습니다. 같은 페이지에서 일부 글리프가 렌더링되지만 다른 글리프는 렌더링되지 않습니다. 다른 페이지에서는 글리프가 렌더링되지 않습니다.

Agnoster 테마
(출처 : staticflickr.com )

전력선 문서
(출처 : staticflickr.com )

iTerm2에서 (이것은 테스트 한 모든 전력선 글꼴에서 발생합니다) 일부 문자는 렌더링되지만 다른 문자는 렌더링하지 않습니다.

iTerm2 및 zsh
(출처 : staticflickr.com )

vim-airline이 설치된 macvim (터미널)에서 일부 문자가 렌더링되지만 일부 문자가 잘못 렌더링됩니다.

빈 항공
(출처 : staticflickr.com )

Fontconfig

모든 전력선 패치 글꼴을 제거하고 homebrew와 함께 fontconfig를 설치하고 전력선 글꼴을 설치 한 다음 글꼴 캐시를 다시 작성했습니다.

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

글꼴이 감지되었고 fontconfig가 설치되었다고 말했지만 FontBook에 표시되지 않아 iTerm2에서 글꼴을 선택할 수 없습니다.

이를 실행 한 후 글꼴을 제거하고 fc-cache를 다시 실행 한 다음 fontconfig를 제거했습니다.

현재 폰트 북에 설치된 사전 패치 된 글꼴을 사용하고 있으며 부분적으로 작동하지만 누군가가 문제를 조금 더 잘 이해할 수 있기 때문에 작동하는 솔루션을 찾을 수 있기를 바랍니다.

최신 정보

이 방법은 iTerm2에서 모든 것이 작동 하는 것처럼 보이지만 크롬 / 시스템 렌더링 문제에 대해서는 여전히 확신 할 수 없습니다.

폰트 포지

파이썬 바인딩으로 fontforge를 설치하십시오.

brew install fontforge --with-python

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

글꼴 다운로드, 패치 및 설치 :

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



답변

입력 모노 글꼴 만 설치 하면 전력선을 완벽하게 지원합니다.

다음이 작동하려면 입력 모노 글꼴이 버전 1.1이어야합니다. 로 이동하여 글꼴 버전을 확인 Font Book → View → Show Font Info하고 버전 번호를 확인할 수 있습니다.

Terminal.app을 사용하면 기본적으로 작동합니다. 글꼴을 선택하기 만하면됩니다.

iTerm2를 사용하면 몇 가지 사항을 수정해야합니다.

  • 환경 설정 → 프로파일 → 텍스트로 이동하여`ASCII 이외의 텍스트에 다른 글꼴 사용을 선택 취소하십시오.
  • 바로 위를 클릭 Change Font하고 입력 모노를 선택하십시오. 또한 Character Spacing → Vertical110 % 로 변경해야합니다 . 터미널과 iTerm2가 문자 간격을 다른 방식으로 렌더링하는 것 같습니다.

답변

업데이트하지 않았을 가능성이 있습니다 bash. OS X는로 제공 bash < 4되므로 코드를 유니 코드 할 수 printf없거나 echo -e유니 코드 할 수 없습니다 .

갱신에 단계 bashhomebrew:

  1. brew install bash
  2. bashhomebrew에 의해 설치된 접두사를 찾으십시오. mine was /usr/local/Cellar/bash/4.3.30/이므로 내 bash 바이너리는 /usr/local/Cellar/bash/4.3.30/bin/bash입니다.
  3. sudo (vim|nano|emacs|etc) /etc/shells
  4. bash 경로를 가져 와서 목록 끝에 추가하십시오 (또는 /usr/bin정말로 용감한 경우 바꾸십시오 ).
  5. chsh
  6. 경로 Shell:와 일치 하도록 줄을 변경하십시오 bash.
  7. 용어를 다시 시작하십시오.

그리고 당신은 고정되어야합니다.


답변