epojava logo

epoを使おう!

  epoはいわゆるYaHTML のような補完入力や、プロセス起動を行うための処理を 画一的(Unifide)なキーバインディングで行うための マイナーモードです。
  c-mode や java-mode といった通常のモードに付随させて 使用することができます。

epo 単体のインストール

  ここではインストールの仕方について紹介します。
  まず、epo の最新版を下記からダウンロードします。
  1. http://www.yatex.org/epo/
    EPO -- The Editing Process Organizer
  これを適当な場所に展開します。

epo のインストール(Makefile を使うか?  使わないか?)

  Unixを利用している場合や、WindowsにCygwinなどを搭載している場合は makeを利用します。make を使用しない場合は、下記を参照してください。

epo のインストール(Makefile を使用する)

  make を使用する場合は、 Makefile内にある
PREFIX	= /usr/local
## mule2
EMACS	= mule
EMACSDIR= ${PREFIX}/lib/${EMACS}
## emacs20
#EMACS	= emacs
#EMACSDIR= ${PREFIX}/share/${EMACS}
## XEmacs
#EMACS	= xemacs
#EMACSDIR= ${PREFIX}/lib/${EMACS}
## Meadow (Sample)
#EMACS	= meadow
#EMACSDIR = c:/usr/local/meadow
という行を自分の環境に合わせ変更し、 コマンドプロンプト(or xterm,kterm,...)上から、 下記を実行してください。
% make install

epo のインストール(Makefile を使用しない)

  Meadow などで、make を使用しない場合は、 どこか適当な位置にフォルダごとおいてください。
  その後ロードパスの設定(後述)を Emacs の版数に関わらずしておくと安全です(と思います)。

.emacs を設定する

  ~/.emacsへ、   まず epo を起動することができるように以下を記述します。
(autoload 'epo "epo" "Editing Process Organizer" t)
  利用している Emacs が Version 19(mule2) である場合はさらに次のロードパスの設定を追加します。
(setq load-path (cons "/usr/local/lib/mule/site-lisp/epo" load-path))
;;; このフォルダ名はインストール先により変動します。
  ここでは、ファイルを開くと共に自動的に epoが立ち上がって欲しいので、 利用する言語のメジャーモードのhookに登録します。
  以下を参照し必要なものを追加してください。
;;; Ruby を使うとき
(add-hook 'ruby-mode-hook 'epo)
;;; emacs-lisp を使うとき
(add-hook 'emacs-lisp-mode-hook 'epo)
;;; perl を使うとき
(add-hook 'perl-mode-hook 'epo)
;;; tex-mode を使うとき(YaTex を使うときはこれではダメ。下記参照)
(add-hook 'tex-mode-hook 'epo)
;;; YaTeX を使うとき
(add-hook 'yatex-mode-hook 'epo)
;;; SGML を使うとき(PSGML 使用のときはこれではダメ。下記参照)
(add-hook 'sgml-mode-hook 'epo)
;;; Java を使うとき(epojava 使用のときはこれではダメ。下記参照)
(add-hook 'java-mode-hook 'epo)
;;; IDL を使うとき(epojava 使用のときはこれではダメ。下記参照)
(add-hook 'idl-mode-hook 'epo)
;;; C++ を使うとき(epojava 使用のときはこれではダメ。下記参照)
(add-hook 'c++-mode-hook 'epo)
;;; C を使うとき(epojava 使用のときはこれではダメ。下記参照)
(add-hook 'c-mode-hook 'epo)
;;; YaHTML でHTML を補完するために使うとき
;;; (XHTML などの XML や、JSP のためにepoを使用したいときはこれではダメ。
;;; 下記参照)
(add-hook 'yahtml-mode-hook 'epo)

epo の拡張機能

epo + PSGML 等の組み合わせでXMLを使う

  psgml-mode はsgml-mode の後継として、 SGML/XML の入力を行うためのモードの一つです。 DTD を用いた補完入力等ができます。
  epo と組み合わせることにより、 さらに強力なタグ補完(&プロセス起動)を行うことが可能です。
  PSGML 本体のインストールに関しては以下を参照してください。
  1. (米語) http://www.lysator.liu.se/projects/about_psgml.html
    A GNU Emacs mode for SGML files
  2. (日本語) http://db-www.aist-nara.ac.jp/xml/psgml/
    PSGML で XML 文書を書く
  epo の XML 機能は contribution となっています。 epo のカレントフォルダ+ ./contrib 配下に存在する ファイル一式を一度、カレントのフォルダの方に移動してください (または epojava の *.el をカレントのフォルダの方へ移動してください。 epojava で配布しているものの方が新しいはずです)。
  PSGML に対する epo~/.emacsへの追加設定は以下の通りとなります。
;;; PSGML の設定
(autoload 'epo-xml-enable "epo-xml" "Editing Process Organizer for XML" t)
(add-hook 'sgml-mode-hook  'epo-xml-enable)

epo + YaHTML の組み合わせで JSP を使う

  JSP(Java Server Page)を使用する場合は、 epo + YaHTML の組み合わせて 使用した方がなにかと便利です。
  なぜなら JSP は HTML が基本となっているため、 PSGMLepojava を使用すると <br> や <hr> といったタグで インデントがおかしくなるからです (※注:HTML ではなく、XHTML として文書を作成するときは、 逆に epojavaPSGML を使わないとインデントがおかしくなります)。
  設定的には以下を~/.emacsに追加してください。
;;; YaHTML の設定(拡張子 jsp で YaHTML を起動する)
(setq auto-mode-alist
      (cons (cons "\\.jsp$" 'yahtml-mode) auto-mode-alist))

(autoload 'epo-xml-enable "epo-xml" "Editing Process Organizer for XML" t)
(add-hook 'yahtml-mode-hook  'epo-xml-enable)
  尚、YaHTML に関しては以下からダウンロードを行ってください。
  1. http://www.yatex.org/
    Yet Another LaTeX mode for Emacs.

Java/C/C++/XML を epojava で使う

  epojavaYaHTML のようなプロセス起動、 teikade(PFU(C)) のようなメソッド検索およびファイルジャンプを目指して確立させた Java 開発環境の一つです。
  ついでに C での入力や、XML(Jakarta-Ant のため)の補完入力等 でのYaHTMLらしさが出るような改造を行っています。
  epojava は以下からダウンロードしてください。
  1. (米語) ./index.html
    epojava system information.
  2. (日本語) ./index-jp.html
    mule/XEmacs拡張java入力支援モード『epojava』
  まずepoをインストール後、 epojava をダウンロードして、 mule/XEmacsのロードパスが通ったところに 展開したファイルを置きます (*.el*.jarだけでよいです)。 ロードパスという用語がよく分からない場合は epoと同じフォルダに入れてください。
  その後、自分の~/.emacs を書き直します (上級者の方は中身を好みで書き換えてください)。
;; epojava mode
(require 'epoan)
  以上でセットアップは完了です。

  すべてまとめると、一般的な設定は以下の様になると思います。
;;; 一般的な設定
(autoload 'epo "epo" "Editing Process Organizer" t)
(setq load-path (cons "/usr/local/lib/mule/site-lisp/epo" load-path))
;;; このフォルダ名はインストール先により変動します。
;; epojava mode
(require 'epoan)
  mule/XEmacsを起動し直し *.java ファイルを開いたときに、 右下に epojavaと表示されたら インストールは正常に行なわれました。
  epoxml を使用する場合、 mule/XEmacsを起動し直し *.xml ファイルを開いたときに、 右下に epo... (...にはxml,ant 等適切と思われるモードが書かれる) と表示されることを確認してください。

  さらに詳細は、 epojava チュートリアルを参照してください。

XMLはepo+PSGMLを使用し、java はepojavaを使用する

  XML は慣れ親しんだ PSGML を使用し、 Java/C/C++ に関しては epojava を使用する。 などといった贅沢な組み合わせも考えられます。
  その場合の設定方法を示します。
  PSGMLに対する epo の追加設定は以下の通りです。   ~/.emacs に追加してください。
;;; PSGML の設定
(autoload 'epo-xml-enable "epo-xml" "Editing Process Organizer for XML" t)
(add-hook 'sgml-mode-hook  'epo-xml-enable)
  epojava に対する設定は、 (require 'epoan) を使用せず、~/.emacs に直接以下のような記述を行います(epoan.el を直接編集しても良いです)。
;; java
(setq auto-mode-alist
      (cons (cons "\\.\\(java\\|class\\)$" 'epojava-mode) auto-mode-alist))
(autoload 'epojava-mode "epojava" "Epo-java mode" t)
;; CORBA/IDL
(setq auto-mode-alist (cons (cons "\\.idl$" 'epoidl-mode) auto-mode-alist))
(autoload 'epoidl-mode  "epocc"   "Epo-idl mode" t)
;; CORBA/C mapping
(setq auto-mode-alist
      (cons (cons "\\.\\(ih\\|hh\\|ic\\)$" 'epocc-mode) auto-mode-alist))
;; C/C++
(setq auto-mode-alist
      (cons (cons "\\.\\(C\\|cc\\|CC\\|cpp\\|cxx\\|h\\|H\\)$"
		  'epocc-mode) auto-mode-alist))
(setq auto-mode-alist (cons (cons "\\.c$" 'epoc-mode) auto-mode-alist))
(autoload 'epoc-mode    "epocc"   "Epo-c mode" t)
(autoload 'epocc-mode   "epocc"   "Epo-cc mode" t)

ando@park.ruru.ne.jp