(save-current-buffer (let ( (buffer (set-buffer (generate-new-buffer "*keychain*"))) (eval-sh-export (lambda (name) (progn (goto-char (point-min)) (setenv name (buffer-substring (search-forward (concat name "=")) (- (search-forward ";") 1))))))) (insert-file-contents (concat (expand-file-name "~/.keychain/") (car (split-string (system-name) "\\.")) "-sh")) (funcall eval-sh-export "SSH_AUTH_SOCK") (funcall eval-sh-export "SSH_AGENT_PID") (kill-buffer buffer)))
lambda がどうも上手につかえない。