2013年 7月 の投稿一覧

同時に複数のEmacsの設定を維持する方法

はじめに

emacs-snapshot,Emacs24.3,Emacs23など複数のEmacsの

設定を保つ方法を書いてみます.

.emacsの設定

Emacsのバージョンで条件分岐させています.

これら以外’.emacs’には何も書かないようにします.

init.elの設定

init.elファイルだけでなくEmacsのディレクトリも

別々にしています.

そのため各init.elの先頭には変数user-emacs-directoryを

定義し直しています.

  • “~/.emacs-snapshot.d/init.el”
;;; Emacs directory
(setq user-emacs-directory "~/.emacs-snapshot.d/")
  • “~/.emacs24.d/init.el”
;;; Emacs directory
(setq user-emacs-directory "~/.emacs24.d/")
  • “~/.emacs23.d/init.el”
;;; Emacs directory
(setq user-emacs-directory "~/.emacs23.d/")
  • “~/.emacs.d/init.el”

デフォルト値のため変更不要.

Wanderlustをel-getを使ってインストールする on Emacs24

はじめに

Emacs24をソースからインストールしたため,Wanderlustも

el-getを使ってGithub上のソースから入れてみました.

環境とバージョン

  • OS:Debian Jessie amd64
  • Emacs:24.3
  • Wanderlust:2.15.9

インストール

el-get

el-getとは,Emacsに外部のスクリプトや拡張をダウンロードしインストールしてくれる

ツールです.

もし,el-getをインストールしていない場合は,次のコードを初期設定ファイル(.emacs等)に

書き,Emacsを再起動するか’M-x load-file’で初期設定ファイルを読み込んでください.

自動的にel-getがインストールされます.

(add-to-list 'load-path "~/.emacs.d/el-get/el-get")

(unless (require 'el-get nil t)
  (url-retrieve
   "https://github.com/dimitri/el-get/raw/master/el-get-install.el"
   (lambda (s)
     (end-of-buffer)
     (eval-print-last-sexp))))

;; now either el-get is `require'd already, or have been `load'ed by the
;; el-get installer.
(setq
 el-get-sources
 '(el-get                               ; el-get is self-hosting
   escreen                              ; screen for emacs, C-\ C-h
   php-mode-improved                    ; if you're into php...
   switch-window                        ; takes over C-x o
   auto-complete                        ; complete as you type with overlays
   zencoding-mode                       ; http://www.emacswiki.org/emacs/ZenCoding

   (:name buffer-move                   ; have to add your own keys
          :after (lambda ()
                   (global-set-key (kbd "<C-S-up>")     'buf-move-up)
                   (global-set-key (kbd "<C-S-down>")   'buf-move-down)
                   (global-set-key (kbd "<C-S-left>")   'buf-move-left)
                   (global-set-key (kbd "<C-S-right>")  'buf-move-right)))

   (:name smex                          ; a better (ido like) M-x
          :after (lambda ()
                   (setq smex-save-file "~/.emacs.d/.smex-items")
                   (global-set-key (kbd "M-x") 'smex)
                   (global-set-key (kbd "M-X") 'smex-major-mode-commands)))

   (:name magit                         ; git meet emacs, and a binding
          :after (lambda ()
                   (global-set-key (kbd "C-x C-z") 'magit-status)))

   (:name goto-last-change              ; move pointer back to last change
          :after (lambda ()
                   ;; when using AZERTY keyboard, consider C-x C-_
                   (global-set-key (kbd "C-x C-/") 'goto-last-change)))))

(unless (string-match "apple-darwin" system-configuration)
  (loop for p in '(color-theme          ; nice looking emacs
                   color-theme-tango    ; check out color-theme-solarized
                   )
        do (add-to-list 'el-get-sources p)))

;;
;; Some recipes require extra tools to be installed
;;
;; Note: el-get-install requires git, so we know we have at least that.
;;
(when (el-get-executable-find "cvs")
  (add-to-list 'el-get-sources 'emacs-goodies-el)) ; the debian addons for emacs

(when (el-get-executable-find "svn")
  (loop for p in '(psvn                 ; M-x svn-status
                   yasnippet            ; powerful snippet mode
                   )
        do (add-to-list 'el-get-sources p)))

;; install new packages and init already installed packages
(el-get 'sync)

このコードの後半にもありますが,cvsとsubversionがシステムにインストール

されていることが前提です.

Debianでは,次のコマンドでインストールできます.

apt-get install cvs subversion

Wanderlust

ミニバッファで’M-x el-get-install wanderlust’と打つと

Wanderlustだけでなく依存関係にあるapel,flim,semiも

インストールされます.

参考リンク

EmacsWiki: Wander Lust

EmacsWiki: el-get

GoogleSummerOfCode 2013にGuile-Emacs,Emacsyが選ばれる

旧聞ですが,GoogleSummerOfCode 2013にGuile-EmacsとEmacsyが選ばれました.

Guile-Emacsとは,ElispインタプリタをGuileのElispインタプリタで

置き換えるプロジェクトです.

EmacsyはEmacs/Guileのもう一つのアプローチです.

詳しくは,

Guile-Emacs

Emacsy, An Embeddable Emacs-like Library for GNU Guile Scheme

Guile – ニュース: GSoC: Guile-Emacs and Emacsy Savannah

Emacs24でClojure開発環境を作ってみました

はじめに

以前Clojure開発環境を作ってみたことがありましたが,

今回はパッケージからインストールしてみます.

環境とバージョン

  • OS:Debian Jessie amd64
  • Emacs:24.3

インストール

Emacsを起動し,

M-x package-list-packages

と打ちます.

パッケージリストから,

auto-complete
clojure-mode
clojure-test-mode
nrepl
nrepl-ritz
ac-nrepl
paredit
rainbow-delimiters

を選択しインストールします.

設定

初期設定ファイル(.emacs等)に以下のようなコードを書きます.

(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)

;; nrepl-ritz
(add-hook 'nrepl-interaction-mode-hook 'my-nrepl-mode-setup)
(defun my-nrepl-mode-setup ()
  (require 'nrepl-ritz))

;; 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

参考リンク

Vagrant / Clojure / Emacs – Stack Overflow

World Cognition By Programming: Setting up Emacs for Clojure programming

以前の記事はコチラ.
nrepl.elをインストールする

nrepl-ritz.elをインストールする