FreeStyleWiki

Emacsの設定(Windows)

このエントリーをはてなブックマークに追加

[Emacs]

Emacsの設定(Windows)

 Emacsカスタマイズ

事前知識

NTEmacs
Windows向けにビルドされたGNU Emacsのこと。実はNTが何の略かという問題は最近まではっきりしていなかったらしい

NT、本当は何の略?

NTEmacsは以下からダウンロードできる

GNU Project Archives

64bitバージョンのWindowsネイティブEmacsなどもある

GNU emacs(x64)

わりとおすすめ、動作が軽快です

目標
クソ重いeclipseに代わってJavaをWindows上で書けるようにする

ウィンドウの最大化

;; ウィンドウサイズの設定
;; 最大化する命令の定義
(defvar w32-window-state nil)

(defun w32-fullscreen-switch-frame ()
  (interactive)
  (setq w32-window-state (not w32-window-state))
  (if w32-window-state
      (w32-fullscreen-restore-frame)
    (w32-fullscreen-maximize-frame)
    ))

(defun w32-fullscreen-maximize-frame ()
  "Maximize the current frame (windows only)"
  (interactive)
  (w32-send-sys-command 61488))

(defun w32-fullscreen-restore-frame ()
  "Restore a minimized/maximized frame (windows only)"
  (interactive)
  (w32-send-sys-command 61728))

(add-hook 'window-setup-hook
          '(lambda () (w32-fullscreen-maximize-frame))
          )

MiNGWのシェル連携

MinGW/msysと連携することでUNIXコマンドが使用することができるようになる

;; Shell Mode
;; MSYS の bash を使用します(msys-1.0.16とかになってるけど、普通は1.0だと思う)
(setq explicit-shell-file-name "c:/MinGW/msys-1.0.16/bin/bash.exe")
(setq shell-file-name "c:/MinGW/msys-1.0.16/bin/sh.exe")

;; SHELL で ^M が付く場合は ^M を削除します。
(add-hook 'shell-mode-hook
	  (lambda ()
	    (set-buffer-process-coding-system 'undecided-dos 'sjis-unix)))

;; shell-mode での保管
(setq shell-file-name-chars "~/A-Za-z0-9_^$!#%&{}@`'.,:()-")

;; Grep
(defadvice grep (around grep-coding-setup activate)
  (let ((coding-system-for-read 'utf-8))
    ad-do-it))

(setq grep-find-command "find . ! -name '*~' -type f -print0 | xargs -0 lgrep -n -Au8 -Ia ")

環境変数の設定

;;
;; env
;;

;; PATH
(setenv "PATH"
        (concat
         "C:\\MinGW\\msys\\1.0\\home\\hiroyuki;"
         "C:\\MinGW\\bin;"
         "C:\\MinGW\\msys\\1.0\\bin;"
	 "C:\\Program Files (x86)\\Git\\bin;" ;; Git
	 "C:\\apache-maven-3.2.1\\bin;"       ;; Maven
         (getenv "PATH")))

;; JAVA_HOME
(setenv "JAVA_HOME" "C:\\Java\\jdk1.7.0_60")

cygwin-mount.el

これを設定することで、msysでマウントしているパスをemacsから参照できる。

EmacsWiki: cygwin-mount.el

;; cygwin-mount
(require 'cygwin-mount)
(cygwin-mount-activate)

malabar-mode

Mavenを利用するEmacsの新しいモード。このへんを参考に:malabar-modeでjavaを書く

ビルドしたmalabarを~/.emacs.d/以下に置くものとして…

;;
;; Java編集
;;
(require 'cedet)
(add-to-list 'load-path "~/.emacs.d/malabar-1.4.0/lisp")

;;(semantic-load-enable-minimum-features)
(when (require 'malabar-mode nil t)
  (setq malabar-groovy-lib-dir (concat user-emacs-directory "~/.emacs.d/malabar-1.4.0/lib"))
  (add-to-list 'auto-mode-alist '("\\.java\\'" . malabar-mode))
  ;; 日本語だとコンパイルエラーメッセージが化けるのでlanguageをenに設定
  ;; compileウィンドウで使う文字コードを指定できればいいんだけど…
  (setq malabar-groovy-java-options '("-Duser.language=en"))
  ;; 普段使わないパッケージを import 候補から除外
  (setq malabar-import-excluded-classes-regexp-list
        (append 
         '(
           "^java\\.awt\\..*$"
           "^com\\.sun\\..*$"
           "^org\\.omg\\..*$"
           ) malabar-import-excluded-classes-regexp-list))
  (add-hook 'malabar-mode-hook
            (lambda ()
              (add-hook 'after-save-hook 'malabar-compile-file-silently
                        nil t)))
)

proxy環境でのauto-install

id, passが必要な環境で動作を確認できた。

ここを参考に:proxy 環境下で auto-install を使うAdd Star