PragmataPro to krój pisma z wieloma ligaturami programującymi . Rozumiem, że są to ligatury twarzy OpenType (OTF).
Wiem, że Emacs obsługuje programowe zastępowanie kombinacji znaków (na przykład ->
do ⟶
lub lambda
do λ
). Są to jednak fałszywe ligatury unicode, ponieważ mają własne punkty kodowe, których nie mają prawdziwe ligatury.
Czy mam rację, że Emacs (od 25) nie obsługuje automatycznie ligatur OTF? Czy na niższym poziomie są dostępne opcje ręcznego określania mapowań glifów?
Jeśli ligatury nie są obsługiwane, to co należy zrobić, aby Emacs wspierał ligatury?
haskell-mode
jest szczegółowo opisane w tej treści .prettify-symbols-mode
, i to działa dobrze z bardzo PragmataPro 0,822.Odpowiedzi:
emacs na razie nie obsługuje ligatur (w OSX jest pewne wsparcie, ale nie na innych platformach). Jednak obsługuje emacs 24.4+,
prettify-symbols-mode
co jest pod pewnymi względami lepsze niż normalne wsparcie ligatur.Ten tryb pozwala zastąpić wyświetlanie dowolnego wyrażenia regularnego dowolnym glifem.
Osobiście używam tego fragmentu kodu, aby ligatury kodu Fira działały w emacsie na systemie Linux.(EDYCJA: niestety link jest już martwy, polityka nakładania stosów, aby zawsze kopiować w toku, jest oczywiście dobra ...)Link, który pierwotnie umieściłem, jest martwy i nie jestem pewien, co dokładnie zawierał, ale myślę, że te linki powinny być dobre: https://github.com/tonsky/FiraCode/wiki/Emacs-instructions#using-prettify-symbols i https://github.com/tonsky/FiraCode/issues/312#issuecomment-262878734
Biorąc pod uwagę problem z martwym linkiem, tym razem wstawiam kod:
Powiedziałem, że pod pewnymi względami jest to lepsze niż normalne ligatury. To dlatego, że jest to „a la carte”. Możesz mieszać i łączyć ze sobą, brać tylko te symbole, które lubisz. Możesz powiedzieć: chcę „;;” ligatura, Z WYJĄTKIEM, jeśli kolejnym znakiem jest ponownie „;” w takim razie nie chcę tego ... A jeśli chodzi o mieszanie i dopasowywanie ... Używam czcionki „Fira Mono” wraz z ligaturami „Fira Code”. Nie musisz kupować całą czcionką.
Jest gorszy niż czyste ligatury, ponieważ nie działa po wyjęciu z pudełka i wymaga dostrojenia czcionki w określony sposób, aby było to możliwe.
źródło
Jeśli korzystasz z systemu OS XI, port Carbon Mac Emacs obsługuje ligatury.
źródło