Tôi muốn kết hợp một môi trường chuẩn để khám phá Clojure với Emacs. Có ai có một công thức mà sẽ phù hợp với điều này? Tôi đang nghĩ đến một hệ thống Vagrant chạy một hương vị của Ubuntu, với NREPL và một số plugin hỗ trợ EMACS hữu ích.Vagrant/Clojure/Emacs
Trả lời
Một Github tổ chức, vỏ được cung cấp thiết lập lang thang nằm ở đây:
https://github.com/pattinsont/Ukelele
Tất cả những gì nên được yêu cầu là một kiểm tra và lang thang lên.
Khi máy ảo đang hoạt động, hãy bật hộp lên. Chạy các emacs để hoàn tất cài đặt. Sau đó, M-x cider-jack-in
vagrant box add preciseMinimal http://goo.gl/wxdwM
Thay đổi để Clojure thư mục cơ sở lang thang
vagrant init preciseMinimal
vagrant up
vagrant ssh
hoặc ssh để cổng 127.0.0.1 2222 (hoặc cổng khác được đề cập trong "lang thang lên" đầu ra)
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:cassou/emacs
sudo apt-get update
sudo apt-get install emacs24 emacs24-el emacs24-common-non-dfsg
sudo apt-get install clojure
cd ~/
mkdir bin
sed '$ a\
export PATH=~/bin:$PATH' ~/.bashrc
thoát và kết nối tới ssh
cd ~/bin
wget https://raw.github.com/technomancy/leiningen/preview/bin/lein
chmod +x lein
./lein
cd ~
cat >.emacs
; Package.el customization
(package-initialize)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
;; install packages
(defvar my-packages '(
auto-complete
clojure-mode
clojure-test-mode
nrepl
ac-nrepl
paredit
rainbow-delimiters
))
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-refresh-contents)
(package-install p)))
;; The following line can be removed after first install to speed up startup
(byte-recompile-directory (expand-file-name "~/.emacs.d") 0)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(auto-save-default nil)
'(backup-inhibited t t)
'(cursor-type 'bar t)
'(column-number-mode t)
'(delete-selection-mode t)
'(inhibit-startup-screen t)
'(initial-scratch-message nil)
'(tool-bar-mode nil)
'(xterm-mouse-mode 1))
;; rainbow delimiters
(require 'rainbow-delimiters)
(global-rainbow-delimiters-mode)
;; paredit
(add-hook 'clojure-mode-hook 'paredit-mode)
(add-hook 'nrepl-mode-hook 'paredit-mode)
(global-set-key [f7] 'paredit-mode)
;; clojure-mode
(global-set-key [f9] 'nrepl-jack-in)
;; nrepl
(add-hook 'nrepl-interaction-mode-hook 'nrepl-turn-on-eldoc-mode)
(setq nrepl-popup-stacktraces nil)
(add-to-list 'same-window-buffer-names "*nrepl*")
(add-hook 'nrepl-mode-hook 'paredit-mode)
;; Auto complete
(require 'auto-complete-config)
(ac-config-default)
(define-key ac-completing-map "\M-/" 'ac-stop)
;; ac-nrepl
(require 'ac-nrepl)
(add-hook 'nrepl-mode-hook 'ac-nrepl-setup)
(add-hook 'nrepl-interaction-mode-hook 'ac-nrepl-setup)
(eval-after-load "auto-complete" '(add-to-list 'ac-modes 'nrepl-mode))
#CTRL-D to finish
thông tin ghi nhận biết ơn: http://blog.worldcognition.com/2012/07/setting-up-emacs-for-clojure-programming.html
'paredit' có thể hơi chói tai đối với người dùng Emacs mới. Nếu bạn gắn bó với nó, bản thân tương lai của bạn sẽ luôn biết ơn. –
Có thể sử dụng Chef để cài đặt các gói và có thể tải lên các .emac không? – mac
Một dự án thú vị sẽ bao gồm tất cả điều này trong một cấu hình Vagrant/con rối để ví dụ: thanh toán từ GitHub và 'lang thang' sẽ là tất cả những gì cần thiết. – JohnJ
Chỉ là một gợi ý. Kiểm tra [Clojure cho hướng dẫn dũng cảm và đúng] (http://www.braveclojure.com/). Anh chàng tạo ra một thiết lập cho Emacs mà chỉ là tuyệt vời. Bạn nhận được tất cả mọi thứ đóng gói với nhau và sẵn sàng để đi. –