Skip to content

defpath.el を書きました

2012/11/13

defpath

以前

で紹介したパスユーティリティのコードですが、
今見なおしてみるとなかなかひどいコードでした。
関数として書かれている上に、eval を呼び出すなんて!

当時は lisp の勉強を始めたばかりだったのであんなコードを書いてしまいましたが、
今思えば、これはマクロで十分だったなぁと…

ということで defpath.el として書き直しました。

使い方

使い方は以前と少し変わっていて、defvar と同じような形で使います。
docstring を使えるようになりました。
使い方を統一するという点で言えば
常に関数の形でパスの値を呼び出すほうがいいかと思います。

;; パスの定義
(defpath emacs.d "~/emacs.d")

;; ドキュメント付き
(defpath tmp "/tmp" "一時ディレクトリ")

;; パスの呼び出し
path/to/emacs.d          ;=> "~/emacs.d"
(path/to/emacs.d)        ;=> "/home/hkey/emacs.d"
(path/to/emacs.d "init") ;=> "/home/hkey/init"

余談

emacs lisp の中には hoge–huga みたいな形で
接頭辞との区切りにハイフンを2つ並べたものがありますが、
これは common lisp で言うところの内部シンボルのようなものなのでしょうか。

広告

From → Emacs

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。