Emacs的缩进问题(在这种情况下为Espresso)

时间:2011-04-07 13:30:46

标签: emacs

在Emacs配置中肯定会有一些关于缩进的内容。

以下是我要缩进的一些JavaScript代码:

$(function(){
  $.superbox.settings = {
    closeTxt: "",
    loadTxt: "",
    [...]

如果我执行了M-q(即paredit-reindent-defun),这就是我所得到的:

$(function(){
  $.superbox.settings = {
                         closeTxt: "",
                         loadTxt: "",

如何配置Emacs以遵循更传统的缩进?在这个特殊情况下,我希望closeTxt一个缩进(例如四个空格)进一步$.superbox声明上面的一行......

P.S。我使用emacs-starter-kit(https://github.com/technomancy/emacs-starter-kit)。

1 个答案:

答案 0 :(得分:2)

paredit非常适合除Lisp编辑之外的任何其他内容。我会使用它缩进JavaScript代码。您应该尝试使用标准JavaScript缩进defuns。从starter-kit-js.el中删除以下行,重新启动Emacs并重试:

(add-hook 'espresso-mode-hook 'esk-paredit-nonlisp)
(eval-after-load 'espresso
  '(progn (define-key espresso-mode-map "{" 'paredit-open-curly)
          (define-key espresso-mode-map "}" 'paredit-close-curly-and-newline)
          ;; fixes problem with pretty function font-lock
          (define-key espresso-mode-map (kbd ",") 'self-insert-command)
          (font-lock-add-keywords
           'espresso-mode `(("\\(function *\\)("
                             (0 (progn (compose-region (match-beginning 1)
                                                       (match-end 1) "ƒ")
                                       nil)))))))