有没有人知道如何在emacs中使用haskell打印λ而不是\.我知道可以使用haskell-font-lock-symbols,但我发现其余部分很难阅读 - 箭头太小了!
是否有一种简单的方法来覆盖其余的钥匙?
你可以这样做:
\n\n(defun pretty-lambdas-haskell ()\n (font-lock-add-keywords\n nil `((,(concat "\\\\(" (regexp-quote "\\\\") "\\\\)")\n (0 (progn (compose-region (match-beginning 1) (match-end 1)\n ,(make-char \'greek-iso8859-7 107))\n nil))))))\n\n(add-hook \'haskell-mode-hook \'pretty-lambdas-haskell)\nRun Code Online (Sandbox Code Playgroud)\n\n这会将 lambda 添加为关键字,这意味着它不会出现在字符串的转义序列中(TODO:更改内容后情况并非如此)。,(make-char \'greek-iso8859-7 107)当然,它等同于?\xce\xbb,但在这种情况下,您必须确保您的 Emacs init 文件被编码为 unicode。
您还可以启用完整符号字体锁定并使用更好的(阅读:带有更宽的箭头)字体,例如Pragmata Pro、Inconsolata或Ubuntu Monospace。我使用以下代码来选择合适的字体:
\n\n(defun font-existsp (font)\n "Check to see if the named FONT is available."\n (if (null (x-list-fonts font))\n nil t))\n\n(require \'cl)\n(defun font-avail (fonts)\n "Finds the available fonts."\n (remove-if-not \'font-existsp fonts))\n\n(defvar font-preferences\n \'("PragmataPro"\n "Inconsolata"\n "DejaVu Sans Mono"\n "Bitstream Vera Sans Mono"\n "Anonymous Pro"\n "Menlo"\n "Consolas"))\n\n(unless (eq window-system nil)\n (let ((fonts (font-avail font-preferences)))\n (unless (null fonts)\n (set-face-attribute\n \'default nil :font\n (car fonts)))))\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |