emacs で dired でディレクトリを移動してカレントディレクトリを変更する
function emacscd { export EMACS_DIR_FILE=$HOME/.emacs.dir.$$ emacs . if [ -f $EMACS_DIR_FILE ]; then cd `cat $EMACS_DIR_FILE` rm -f $EMACS_DIR_FILE fi }
(defun dired-set-current-dir-and-exit() "Set viewing directory to the current directory" (interactive) (write-region (expand-file-name dired-directory) nil (getenv "EMACS_DIR_FILE")) (save-buffers-kill-terminal)) (add-hook 'dired-mode-hook '(lambda() (define-key dired-mode-map "\C-x\C-c" 'dired-set-current-dir-and-exit)))