ELISPクラブ

自作のEmacs Lispのユーティリティと有名elispの設定例を公開します。
ご活用ください。
Utilities

名前機能プログラム
mobBOW+mule+mew+ダイアルアップ接続環境上で便利なユーティリティ。sendmailの送信スプールにキューイングされているメールに対する操作ができます。Download
shell+マルチウィンドウいらず。複数のシェルモードを同時に使おう。Download


Tips

Cモード/C++モード/Javaモード

ぼくはmule 2.3とcc-mode 4.322の組み合わせでCモード/C++モード/Javaモードを実現 しています。

cc-modeのデフォルトの設定ではJavaのインデントが2になっています。 これはちょっと好みにあわない。 ということで以下の設定ではインデントに4を指定しています。
また引数のリストのインデントに関してarglist-introとarglist-closeの値を変更しています。

(fmakunbound 'c-mode)
(makunbound 'c-mode-map)
(fmakunbound 'c++-mode)
(makunbound 'c++-mode-map)
(makunbound 'c-style-alist)
(autoload 'c++-mode "cc-mode" "C++ Editing Mode" t)
(autoload 'c-mode   "cc-mode" "C Editing Mode" t)
(autoload 'objc-mode "cc-mode" "Objective-C Editing Mode" t)
(autoload 'java-mode "cc-mode" "Java Editing Mode" t)
(setq auto-mode-alist
      (append '(("\\.C$"    . c++-mode)
		("\\.cc$"   . c++-mode)
		("\\.c$"    . c-mode)
		("\\.h$"    . c-mode)
		("\\.m$"    . objc-mode)
		("\\.java$" . java-mode)
		) auto-mode-alist))

(setq java-mode-hook
      (function (lambda ()
		  (c-set-style-1
		   '((c-basic-offset . 4) ; change
		     (c-offsets-alist .
		       ((statement-block-intro . +)
			(knr-argdecl-intro     . 5)
			(substatement-open     . +)
			(label                 . 0)
			(statement-case-open   . +)
			(statement-cont        . +)
			(arglist-intro . +) ; change
			(arglist-close . 0) ; change
			(access-label  . 0))
		       ))))))


html-helperモード

最近elisp関係の情報はSuper ASCIIのBOWの連載からゲットすることが多いの ですが、html-helperモードもそこから。
以前は別のhtmlモードを使っていたいのですが、どうも調子が悪く結局 fundamentalモードを使ったりしました。

試しにhtml-helperモードを使ってみたところ

  1. キーアサインが覚えやすい
  2. 新規作成時に雛形の自動挿入
  3. ファイルセーブ時の更新日付の自動挿入
といった点が気に入ってしまい、手放せなくなってしまいました。

基本設定
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist
      (append '(("\\.html$"    . html-helper-mode)
		) auto-mode-alist))

新規作成時に挿入される雛形のカスタマイズは必須といえるでしょう。
ユーザアドレスはhtml-helper-address-string、雛形そのものは html-helper-new-buffer-templateをカスタマイズします。

拡張設定例
(setq html-helper-address-string
      (concat "<a href=\"http://www.netpassport.or.jp/~wtasami\">ASAMI Tomoharu</a>\n"
	      " (<a href=\"mailto:tasami@ibm.net\">tasami@ibm.net</a>)"))

(setq html-helper-new-buffer-template
      '("<html>\n"
	"<head>\n"
	"<title>TITLE</title>\n"
	"</head>\n"
	"<body bgcolor=\"#ffffff\">\n"
	"<table border>\n"
	"<tr bgcolor=\"#c0c0c0\"><td>\n"
	"<h1><font color=\"#202020\">TITLE</font></h1>\n"
	"</td></tr>\n"
	"</table>\n"
	"\n"
	"<hr>\n"
	"\n"
	"\n"
	"<hr size=4>\n"
	"\n"
	"<address>\n"
	html-helper-address-string
	"\n</address>\n"
	html-helper-timestamp-start
	html-helper-timestamp-end
	"\n</body>\n"
	"</html>\n"))

W3モード

このネタもSuper ASCIIのBOW連載から。
ぼくが使っているのはw3-1.472です。
始めはあまり便利に思っていなかったのですが、意外な使い方を発見したので ご紹介します。

設定

設定は非常に簡単で、w3のインストールを行うと以下の設定が自動的に.emacs に行われます。

自動設定
;;; Emacs-w3 configuration options
(setq load-path (cons (expand-file-name "/usr/local/gnu/common/site-lisp/w3") load-path))
(autoload 'w3-preview-this-buffer "w3" "WWW Previewer" t)
(autoload 'w3-follow-url-at-point "w3" "Find document at pt" t)
(autoload 'w3 "w3" "WWW Browser" t)
(autoload 'w3-open-local "w3" "Open local file for WWW browsing" t)
(autoload 'w3-fetch "w3" "Open remote file for WWW browsing" t)
(autoload 'w3-use-hotlist "w3" "Use shortcuts to view WWW docs" t)
(autoload 'w3-show-hotlist "w3" "Use shortcuts to view WWW docs" t)
(autoload 'w3-follow-link "w3" "Follow a hypertext link." t)
(autoload 'w3-batch-fetch "w3" "Batch retrieval of URLs" t)
(autoload 'url-get-url-at-point "url" "Find the url under the cursor" nil)
(autoload 'url-file-attributes  "url" "File attributes of a URL" nil)
(autoload 'url-popup-info "url" "Get info on a URL" t)
(autoload 'url-retrieve   "url" "Retrieve a URL" nil)
(autoload 'url-buffer-visiting "url" "Find buffer visiting a URL." nil)
(autoload 'gopher-dispatch-object "gopher" "Fetch gopher dir" t)
;;; End of Emacs-w3 configuration options
ただしこれだけだとw3起動時のホームページが http://www.cs.indiana.edu/elisp/w3/docs.htmlになってしまいます。
このままだとw3起動のたびにwww.cs.indiana.eduまでつなぎにいってしまうの で、以下のように自分の使いたいページを設定しておくのは必須です。

基本設定
(setq w3-default-homepage "file:/dfs/c/jdk1.1/docs/api/packages.html")

使用方法

起動
M-x w3

ご参考

W3のおもしろい使い方としてJava APIの参照があります。
W3はテーブルが表示できないという欠陥があるのですが、Java APIのHTMLはテー ブルを使っていないので全く問題ありません。
基本設定の例はBOW上のmuleからWindowsにインストールされたJDK1.1のAPI を参照するためのものです。

W3をJava APIの参照の目的で使用するための情報は じゃばじゃばの記事にまとめてありますので参考にしてください。


特に指定がない限り、このページのプログラムの扱いはGNU Public License 2 に従います。
このページのプログラムによって発生した被害に対し著者は一切の責任を負い ません。
ホームページ 戻る メール
No.
ASAMI Tomoharu (tasami@ibm.net)
Last modified: Sun Jan 11 22:29:47 JST 1998