2015-10-20 73 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绑定,输入为非缩进版本。 –