2009-06-07 11 views
7

SLIME ve swank-clojure ile Emacs 'Clojure modunu kullanıyorum. Girinti ile ilgili bir sorunum var. Çoğu zaman girinti istediğimi yapar: SEKME tuşuna bastığımda 2 boşluk girer. Ancak, örneğin, bir proxy durumunda, TAB ile aldığım girinti büyük: 10 boşluk. Örnek:Bazı durumlarda büyük Emacs Clojure modu sekme girintisi

(defn- create-frame [] 
    (let [frame (JFrame. "Hello Swing") 
     button (JButton. "Click Me")] 
    (.addActionListener button 
       (proxy [ActionListener] [] 
         (actionPerformed [evt] 

...

aynı örneğin vekil yöntemleri ile gider actionPerformed yukarıda.

Bu ayar nerede ve nasıl değiştirebilirim? Anlayışım için Clojure modunun konusu olmalı.

+1

alıyorum girinti senin Örneğin farklıdır ve aslında daha fazla boşluk "düğme" ile ("(vekil" satırları yukarı değerinde, "[ActionListner]" ve "(actionPerformed" de hizaya. Çok lisp girinti gibi sen yaparken bu da ... masif girinti görüyorum –

+0

kullandığınız clojure.el işaret misiniz;.?. görüşlere ben Clojure-mod 1.71 kullanıyorum ELPA – justinhj

cevap

15

Clojure girinti, aksi belirtilmediği sürece, fonksiyon ilk bağımsız değişken ile hizaya ikinci hat girinti için, lisp girinti, kapalı dayanır. Aşağıdaki satırlar bir önceki satırın altına girer (yuvalamada değişiklik olmadığı varsayılarak). İlk bağımsız değişken ikinci satırda ne zaman, örneğin

(some-function arg1 arg2 arg3 
       arg4-on-second-line) 

Veya için

: değişken lisp-indent-offset değiştirme durumunda

(some-function 
arg1 
arg2 
arg3 ...) 

ancak bu girinti düzeni yukarıda ve kuvvetler açıklandığı geçersiz İkinci ifadeler satırı, işlev çağrısının başlangıcından lisp-indent-offset daha fazla sütun girintilidir.

(setq lisp-indent-offset 2) 
+2

1 vasıtasıyla. 3 yıl sonra hala yararlı – doda

8

clojure mode yılında "Her zaman 2 alanlarda" seçeneği var:

Yani, belki şu size aradığınız girinti tanınacak. Aşağıdaki satırı .emacs veya init.el'a ekleyerek ayarlayabilirsiniz.

(setq clojure-defun-style-default-indent t) 
İlgili konular