[Emacs]
Emacsの設定(Windows)
Emacsカスタマイズ
事前知識
- NTEmacs
- Windows向けにビルドされたGNU Emacsのこと。実はNTが何の略かという問題は最近まではっきりしていなかったらしい
NTEmacsは以下からダウンロードできる
64bitバージョンのWindowsネイティブEmacsなどもある
わりとおすすめ、動作が軽快です
- 目標
- クソ重い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から参照できる。
;; 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が必要な環境で動作を確認できた。