【问题标题】:substitute function(x) with f(x) in javascript-mode emacs在javascript模式的emacs中用f(x)替换函数(x)
【发布时间】:2014-09-09 21:58:04
【问题描述】:

我是 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) {}

我如何做到这一点? 谢谢。

【问题讨论】:

    标签: javascript emacs elisp


    【解决方案1】:

    我从未使用过漂亮的 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-modepretty-symbolspurty-mode,所有这些都在MELPA 中可用,pretty-mode 也在 MELPA 稳定版中。

    这样的事情应该适用于purty-mode

    (purty-add-pair '("\\(\\bfunction\\b\\)" . "ƒ"))
    (add-hook 'js-mode-hook #'purty-mode)
    

    注意purty-mode 似乎只有一个替换表,因此functionƒ 替换将影响purty-mode 处于活动状态的所有缓冲区。

    【讨论】:

    • 当我编辑我的emacs显示的javascript文件时,模式为Javascript而不是js。所以我的 purty-add-pair 似乎不起作用。所以我仍然没有“功能”。 “ƒ”工作。不过,我喜欢purty。
    • 关于prettify-symbols-mode,值得注意的是,还有一个global-prettify-symbols-mode可以在你的~/.emacs中一劳永逸地激活。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2021-07-18
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2023-03-27
    • 2019-12-11
    相关资源
    最近更新 更多