| 言語 |
|
|
|
◇ 1 .emacs (または.emacs.el)の確保 念のため、オリジナルの.emacsを次のようにコピーしておく。 $ cp .emacs .emacs.ORG |
◇ 2 emacs をバックグラウンドで実行する。$ emacs & |
|
◇ 3 .emacsファイルを開く。 C-x C-f または、メニューのFilesからOpen File... を選択する。 Find File: ~/.emacs |
|
◇ 4 Emacs Lispプログラムを書き込む。 .emacsを開いたら、ファイルの最後に次のEmacs Lispプログラムを書き込む。
;;; My Java-mode
(setq load-path (cons "~/elisp" load-path))
(autoload 'my-java-mode "my-java.el")
(setq auto-mode-alist
(cons '("\\.java$" . my-java-mode) auto-mode-alist))
|
|
◇ 5 .emacsをセーブし、emacsを終了する。 C-x C-s または、メニューのFileからSave(current buffer)を選択する。 C-x C-c または、メニューのFileからExit Emacsを選択する。 |
◇ 6 Emacs Lispプログラムを格納するディレクトリとしてelispを作る。$ mkdir elisp |
◇ 7 elispディレクトリへ移り、emacsを実行する。$ cd elisp |
◇ 8 *scratch*バッファでJavaプログラムのテンプレートをテストする。
8.1 mainメソッドのテンプレート
現在のバッファが*scratch*であることを確かめて、次のinsert関数を入力し、
C-jで評価する。( C-j はControlキイを押しながらjキイを押す意味である。)
(insert "class {\n public static void main(String[] args) {\n }\n}") C-j
C-j によって、次のように表示されるようにテンプレートを修整する。
最後に表示されるnilは実際に使うときは表示されないので無視すること。
Class {
public static void main(String[] args) {
}
}nil
8.2 for文のテンプレート
(insert " for (;;) {\n }") C-j
C-j によって、次のように表示されるようにテンプレートを修整する。
最後に表示されるnilは実際に使うときは表示されないので無視すること。
for (;;) {
}nil
8.3 while文のテンプレート
(insert " while () {\n }") C-j
C-j によって、次のように表示されるようにテンプレートを修整する。
最後に表示されるnilは実際に使うときは表示されないので無視すること。
while () {
}nil
8.4 if文のテンプレート
(insert " if () {\n } else {\n }") C-j
C-j によって、次のように表示されるようにテンプレートを修整する。
最後に表示されるnilは実際に使うときは表示されないので無視すること。
if () {
} else {
}nil
8.5 printlnメソッドのテンプレート
(insert " System.out.println ();") C-j
C-j によって、次のように表示されるようにテンプレートを修整する。
最後に表示されるnilは実際に使うときは表示されないので無視すること。
System.out.println();nil
|
|
◇ 9 テンプレート生成の自動読み出しプログラムを作成する。 このプログラムの名前をmy-java.elとする。 C-x C-f または、メニューのFilesからOpen File... を選択する。
Find File: ~/elisp/my-java.el
my-java.elのバッファが開いたら、次のようなプログラムを書く。
テンプレートの部分は、C-x C-b または、メニューのBuffersから*scratch*を
選択して参照するか、直接コピーして貼り付ければよい。
(defvar my-java-mode-map nil)
(if my-java-mode-map
()
(setq my-java-mode-map (make-sparse-keymap))
(define-key my-java-mode-map "\C-cm" 'mj-class-main)
(define-key my-java-mode-map "\C-cf" 'mj-for)
(define-key my-java-mode-map "\C-cw" 'mj-while)
(define-key my-java-mode-map "\C-ci" 'mj-if)
(define-key my-java-mode-map "\C-cp" 'mj-system-out-println))
(defun my-java-mode ()
(interactive)
(kill-all-local-variables)
(use-local-map my-java-mode-map)
(setq mode-name "My Java Mode")
(setq major-mode 'my-java-mode)
(run-hooks 'my-java-mode-hook))
(defun mj-class-main ()
(interactive)
(insert "class {\n public static void main(String[] args) {\n }\n}"))
(defun mj-for ()
(interactive)
(insert " for (;;) {\n }"))
(defun mj-while ()
(interactive)
(insert " while () {\n }"))
(defun mj-if ()
(interactive)
(insert " if () {\n } else {\n }"))
(defun mj-system-out-println ()
(interactive)
(insert " System.out.println ();"))
|
|
◇ 10 書き終わったら、my-java.elバッファを格納し、emacsを終了する。 C-x C-s または、メニューのFileからSave(current buffer)を選択する。 C-x C-c または、メニューのFileからExit Emacsを選択する。 |
◇ 11 作成した道具でJavaプログラムを作ってみる。
11.1 emacs をバックグラウンドで実行する。
$ emacs &
11.2 hello.javaというプログラムを作ってみる。
C-x C-f または、メニューのFilesからOpen File... を選択する。
|
◇ 12 ターミナル画面でhello.javaをコンパイルする。$ javac hello.java |
◇ 13 hello.classを実行する。 $ java hello hello, world hello, world hello, world hello, world hello, world |
|
言語の目次へ戻る
|