2011-04-07 47 views
0

在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)。

+0

爲什麼downvoting這個問題?至少發表評論以改善未來的問題! – 2012-02-27 20:47:39

回答

2

paredit很不適合Lisp編輯以外的任何其他應用。我會使用它縮進JavaScript代碼。您應該嘗試使用標準JavaScript indent 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))))))) 
+0

什麼是標準的javascript indent defuns? – 2011-04-07 14:58:02

+0

當您刪除paredit綁定時,您將自動擁有它們。大多數模式我都不熟悉模式,但像縮進區域(C-M- \)等東西總是可用的。該模式可能實現了indent-defun之類的東西。您可以通過在JavaScript緩衝區中按C-h m來查看可用的函數/鍵綁定。 – 2011-04-07 15:20:30