ディレクトリへのパスへジャンプ

ini-modeとかで出てくるディレクトリへF4とかF10とかでジャンプしたいなぁと思ったので、そういうような動きをするのをう作った。*1ただし、モードのキーマップへどういう感じで、追加するのかよく分からなかったので、使えないけどね。そのまま書き換えるとか、ってのもいいのかよく分からない感じ。
一応ここに書いておく。

(defun goto-directory()
  (interactive)
  (let ((dir nil))
	(save-excursion
	;パスか行頭が出てくるまで後ろに移動して
	(while (not (looking-at "[CcDd]:\\([/\\][^ \t :*\\?\"<>|]*\\)*[/\\]\\|^."))
	  ;パスの中にspaceがあったりすると上手く認識できない。
	  (backward-char))
		;パスらしき所を取り出す。
		(setq dir (buffer-substring (match-beginning 0)(match-end 0)))
		(if (file-directory-p dir);一応確認して
			(progn
			  (open-filer)
			  ;ファイラを開く
			  (filer-chdir dir))
		  (error "ディレクトリじゃない"))
		)))

キー割り当てできないのは何となくロードする順番のせいかも知れない。(require "ini-mode")を先にすれば特に問題はないんだけど、こういうやり方は本当はいいのかよく分からない。一応メモ。

;キー設定
(require "ini-mode")			; これは微妙だなぁ
(define-key ed::*ini-mode-map* #\F4 'goto-directory)

*1:パスに空白が入ると認識できないけど(゚ε゚)キニシナイ!!