Şimdilik emacs bitişik harfleri desteklemiyor (OSX'te bir miktar destek var, ancak diğer platformlarda değil). Bununla birlikte, emacs 24.4+ destekler prettify-symbols-mode
, bazı yönlerden normal bitişiklerden daha iyidir.
Bu mod, herhangi bir regex'in herhangi bir glifle görüntülenmesini sağlar. Kişisel olarak bu snippet'i Fira Code bitişiklerinin linux'taki emacs'larda çalışmasını sağlamak için kullanıyorum . (EDIT: Maalesef bağlantı artık bitti, her zaman satır içi kopyalamak için stackoverflow politikası açıkça iyi ...
Aslen koyduğum bağlantı öldü ve tam olarak ne içerdiğinden emin değilim ama bu bağlantıların iyi olması gerektiğini düşünüyorum:
https://github.com/tonsky/FiraCode/wiki/Emacs-instructions#using-prettify-symbols ve https://github.com/tonsky/FiraCode/issues/312#issuecomment-262878734
Ölü bağlantı sorunu göz önüne alındığında, bu sefer kodu satır içi ekliyorum:
(defun fira-code-mode--make-alist (list)
"Generate prettify-symbols alist from LIST."
(let ((idx -1))
(mapcar
(lambda (s)
(setq idx (1+ idx))
(let* ((code (+ #Xe100 idx))
(width (string-width s))
(prefix ())
(suffix '(?\s (Br . Br)))
(n 1))
(while (< n width)
(setq prefix (append prefix '(?\s (Br . Bl))))
(setq n (1+ n)))
(cons s (append prefix suffix (list (decode-char 'ucs code))))))
list)))
(defconst fira-code-mode--ligatures
'("www" "**" "***" "**/" "*>" "*/" "\\\\" "\\\\\\"
"{-" "[]" "::" ":::" ":=" "!!" "!=" "!==" "-}"
"--" "---" "-->" "->" "->>" "-<" "-<<" "-~"
"#{" "#[" "##" "###" "####" "#(" "#?" "#_" "#_("
".-" ".=" ".." "..<" "..." "?=" "??" ";;" "/*"
"/**" "/=" "/==" "/>" "//" "///" "&&" "||" "||="
"|=" "|>" "^=" "$>" "++" "+++" "+>" "=:=" "=="
"===" "==>" "=>" "=>>" "<=" "=<<" "=/=" ">-" ">="
">=>" ">>" ">>-" ">>=" ">>>" "<*" "<*>" "<|" "<|>"
"<$" "<$>" "<!--" "<-" "<--" "<->" "<+" "<+>" "<="
"<==" "<=>" "<=<" "<>" "<<" "<<-" "<<=" "<<<" "<~"
"<~~" "</" "</>" "~@" "~-" "~=" "~>" "~~" "~~>" "%%"
"x" ":" "+" "+" "*"))
(defvar fira-code-mode--old-prettify-alist)
(defun fira-code-mode--enable ()
"Enable Fira Code ligatures in current buffer."
(setq-local fira-code-mode--old-prettify-alist prettify-symbols-alist)
(setq-local prettify-symbols-alist (append (fira-code-mode--make-alist fira-code-mode--ligatures) fira-code-mode--old-prettify-alist))
(prettify-symbols-mode t))
(defun fira-code-mode--disable ()
"Disable Fira Code ligatures in current buffer."
(setq-local prettify-symbols-alist fira-code-mode--old-prettify-alist)
(prettify-symbols-mode -1))
(define-minor-mode fira-code-mode
"Fira Code ligatures minor mode"
:lighter " Fira Code"
(setq-local prettify-symbols-unprettify-at-point 'right-edge)
(if fira-code-mode
(fira-code-mode--enable)
(fira-code-mode--disable)))
(defun fira-code-mode--setup ()
"Setup Fira Code Symbols"
(set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol"))
(provide 'fira-code-mode)
Bazı yönlerden normal bitişiklerden daha iyi olduğunu söyledim .. Bunun nedeni "alakart". Karıştırıp eşleştirebilir, yalnızca istediğiniz sembolleri alabilirsiniz. Söyleyebilirsiniz, ben ";;" bitişik, sonraki karakter tekrar ";" ise, HARİCİ Bu durumda istemiyorum ... Ve eşleştirme ile ilgili ... 'Fira Mono' fontunu, 'Fira Code' bitişik harfleriyle birlikte kullanıyorum. Yazı tipinin tamamını satın almak zorunda değilsiniz.
Saf bitişik harflerden daha kötü çünkü kutudan dışarı çıkmıyor ve fontun bunu mümkün kılacak şekilde ayarlanması gerekiyor.