2011-12-22 15 views
9

में पेरेडिट घुंघराले ब्रेस मिलान मैं विंडोज 7 पर emacs 24 का उपयोग कर रहा हूं और पेरेडिट 23 बीटा के साथ technomancy's clojure-mode स्थापित किया है। मैं अपनी लीनिंगेन प्रोजेक्ट से स्रोत फ़ाइल लोड करता हूं और क्लोजर-जैक-इन का उपयोग करके एक प्रतिलिपि प्राप्त करता हूं। समस्या यह है कि जबकि क्लोजर मोड और प्रतिलिपि में पेरेडिट सक्षम है, घुंघराले ब्रेसिज़ केवल स्रोत फ़ाइलों में प्रतिलिपि में मेल नहीं खाते हैं।स्वैंक-क्लोजर प्रतिलिपि

मैं इसे प्रतिलिपि में ब्रेसिज़ से मिलान करने के लिए कैसे प्राप्त कर सकता हूं?

उत्तर

6

मैं अपने .emacs फ़ाइल, वह मेरे लिए काम कर देता है के लिए निम्न जोड़ा (मैं इस अपने आप का आविष्कार नहीं किया, यह एक टुकड़ा मैंने कहीं ऑनलाइन पाया है - लेकिन मैं जहां याद नहीं कर सकते):

(defun setup-slime-repl-paredit() 
    (define-key slime-repl-mode-map 
    (kbd "DEL") 'paredit-backward-delete) 
    (define-key slime-repl-mode-map 
    (kbd "{") 'paredit-open-curly) 
    (define-key slime-repl-mode-map 
    (kbd "}") 'paredit-close-curly) 
    (modify-syntax-entry ?\{ "(}") 
    (modify-syntax-entry ?\} "){") 
    (modify-syntax-entry ?\[ "(]") 
    (modify-syntax-entry ?\] ")[") 
    (modify-syntax-entry ?~ "' ") 
    (modify-syntax-entry ?, " ") 
    (modify-syntax-entry ?^ "'") 
    (modify-syntax-entry ?= "'")) 

(add-hook 'slime-repl-mode-hook 'setup-slime-repl-paredit) 

(add-hook 'slime-repl-mode-hook  'enable-paredit-mode) 

(require 'durendal) 
(durendal-enable t) 

(defun slime-clojure-repl-setup() 
    (when (string-equal (slime-lisp-implementation-name) "clojure") 
    (set-syntax-table clojure-mode-syntax-table) 
    (setq lisp-indent-function 'clojure-indent-function))) 

(add-hook 'slime-repl-mode-hook 'slime-clojure-repl-setup) 

भविष्य में, फिल एक अतिरिक्त तुतलाना पेलोड के रूप में स्वांक-clojure अपने आप में durendal की कार्यक्षमता शामिल हो सकते हैं:

+0

यह काम किया, धन्यवाद! – pventura

1

ले लो फिल Hagelberg के durendal package, जो कीचड़ के लिए कुछ clojure-विशिष्ट एन्हांसमेंट प्रदान करते हैं तो यह टुकड़ा कोशिश , जिस बिंदु पर उपरोक्त अनावश्यक हो जाएगा।

+0

मैंने durendal इंस्टॉल करने का प्रयास किया, जिसके बाद मुझे आवश्यकता है कि मैं कीचड़ और कीचड़-प्रतिलिपि स्थापित करें। उन सभी को स्थापित करने के बाद भी और ऊपर दिए गए कोड को जोड़ने के बाद भी घुंघराले ब्रेसिज़ के मिलान नहीं हुए। – pventura

+0

विषम। मुझे लगता है कि आप अपने Emacs को फिर से शुरू किया? ड्यूरेंडल बिल्कुल वही हुक फ़ंक्शन प्रदान करता है जो @gertalot ऊपर प्रदान किया गया है। लेकिन चूंकि आपको वह समाधान मिल रहा है, वैसे भी, आप सब तैयार हैं। रिकॉर्ड के लिए, मेरे emacs कॉन्फ़िगरेशन का क्लोजर-विशिष्ट हिस्सा यहां है: https://github.com/purcell/emacs.d/blob/master/init-clojure.el – sanityinc

+0

@sanityinc - वास्तव में मेरा स्निपेट * से * Durendal? मुझे नहीं पता कि मुझे यह कहां मिला, लेकिन यदि यह है तो मैं संपादित और क्रेडिट जोड़ूंगा। – Gert

संबंधित मुद्दे