我是 emacs 和 emacs-lisp 的新手,所以我不知道如何为 emacs 编写扩展,但我遇到了一些很棒的扩展,比如交换的“pretty-lambdas”
(lambda (x) (+ x x)) ----> (λ (x) (+ x x))
在 emacs-lisp 模式下。我能够让它为 clojure 工作,这样我得到:
(fn [x] (+ x x)) -----> (λ [x] (+ x x))
我想对 javascript 做同样的事情,这样在 javascript 模式下而不是
function(x){}
我明白了。 f(x) {}
我如何实现这一点? 谢谢。
最佳答案
我从未使用过漂亮的 lambda,但有许多其他库可以做到这一点。
在 Emacs 24.4 中,有一个名为 prettify-symbols-mode
的新内置模式。你应该能够做类似的事情
(add-hook 'js-mode-hook
(lambda ()
(push '("function" . ?ƒ) prettify-symbols-alist)
(prettify-symbols-mode)))
感谢 Stefan,他 points out in the comments还有 global-prettify-symbols-mode
,以防您想一直启用此模式。
或者,您可以使用 pretty-mode
, pretty-symbols
或 purty-mode
, 所有可用 MELPA ,并且 pretty-mode
也在 MELPA 稳定版中。
像这样的东西应该适用于 purty-mode
:
(purty-add-pair '("\\(\\bfunction\\b\\)" . "ƒ"))
(add-hook 'js-mode-hook #'purty-mode)
请注意,purty-mode
似乎只有一个替换表,因此 function
→ ƒ
替换将影响所有缓冲区,其中 purty-mode
处于事件状态。
关于javascript - 在 javascript 模式 emacs 中用 f(x) 替换 function(x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25733253/