2015-10-20 76 views
0

我想設置emacs自動縮進clojure代碼。在Emacs上縮進clojure

直到現在不成功。什麼是爲這個配置文件設置的命令?

+3

你嘗試了什麼?出了什麼問題,以及如何? – choroba

+0

我有我的init.el文件(其中包括):'(require'包) (add-to-list'package-archives '(「melpa-stable」。「http:// melpa-stable .milkbox.net/packages /「)t)'。和'(defvar my-packages'也'clojure-mode',我認爲它帶來了默認的縮進?但是如果我正在處理.clj文件,它仍然是一切縮進的,所以我應該使用tab手動設置縮進 – amirteymuri

+1

Did你看了cider指令嗎?這是非常強大的,事實上,在emacs中有很好的文檔的clojure默認環境。 – JustAnotherCurious

回答

3

這裏是一個示例emacs配置,用於我認爲Clojure的「最小」可用的emacs配置。我說最少在我不願意沒有良好的代碼完成的工作,跳到定義,項目意識到文件處理等:

this example您可以複製到〜/ .emacs.d:

這只是一個高亮,看到在上下文中的示例項目的init文件,看看項目的最新版本,等不只是複製這些

(use-package clojure-mode 
    :ensure t 
    :config 
    (add-hook 'clojure-mode-hook 'yas-minor-mode)) 

(use-package cider 
:ensure t 
:config (progn (add-hook 'clojure-mode-hook 'cider-mode) 
       (add-hook 'clojure-mode-hook 'cider-turn-on-eldoc-mode) 
       (add-hook 'cider-repl-mode-hook 'subword-mode) 
       (setq cider-annotate-completion-candidates t 
         cider-prompt-for-symbol nil))) 

;; clojure refactor library 
;; https://github.com/clojure-emacs/clj-refactor.el 
(use-package clj-refactor 
    :ensure t 
    :config (progn (setq cljr-suppress-middleware-warnings t) 
       (add-hook 'clojure-mode-hook (lambda() 
         (clj-refactor-mode 1) 
         (cljr-add-keybindings-with-prefix "C-c C-m"))))) 

也有一些代碼加入to〜/ .lein/profiles.clj:

{:user {:plugins [[cider/cider-nrepl "0.10.0-SNAPSHOT"] 
       [refactor-nrepl "1.1.0"]] 
     :dependencies [[acyclic/squiggly-clojure "0.1.3-SNAPSHOT"]]}} 
+0

我實際上有一個設置與我可以工作非常好,除了沒有激活縮進,我有paredit,蘋果酒,eldoc,公司,子彈作爲次要模式和clojure模式當然,但我找不到在谷歌的任何地方關於一個命令,封裝,使自動縮進。我知道有一些方法可以縮進manualy,'Cx Tab'等,但每次都會很麻煩! – amirteymuri

+1

作爲一個測試:如果你把這個配置代替你的,自動完成工作?然後把它的一半放在原地並再次測試...平分。這可能會導致打破它的差異。如果縮進不起作用,即使這個配置是另一個線索。 –

+0

我試過了,不起作用。是不是真的將自動縮進包含在clojure模式中? – amirteymuri

0

我加

(global-set-key (kbd "RET") 'newline-and-indent)

init文件,這個工作。我不確定這是否是最好的解決方案,但它確實有效。

+1

該鍵通常與Ctrl-j綁定,輸入爲非縮進版本。 –