言語 |
|
◇ 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 |
言語の目次へ戻る |