From: Peng Li Date: Sat, 30 May 2015 16:42:10 +0000 (+0800) Subject: emacs: elscreen default-directory, exclude eshell-mode to update default directory X-Git-Url: http://47.100.26.94:8080/?a=commitdiff_plain;h=1081bb0e5bcd589e666b4f04c838db18c929e2aa;p=dotfiles.git emacs: elscreen default-directory, exclude eshell-mode to update default directory --- diff --git a/emacs.d/config/init-elscreen.el b/emacs.d/config/init-elscreen.el index 449606f..18d5607 100644 --- a/emacs.d/config/init-elscreen.el +++ b/emacs.d/config/init-elscreen.el @@ -48,18 +48,20 @@ + ;;(add-hook 'buffer-list-update-hook ;; (lambda () ;; (let ((el-dir (elscreen-get-default-directory (elscreen-get-current-screen)))) ;; (if (> (length el-dir) 0) ;; (cd el-dir))))) +(defvar elscreen-exclude-modes '(eshell-mode magit magit-status-mode magit-commit-mode magit-diff-mode) "the major modes don't update directory") ;; when major-mode is magit-*, don't change default-directory, otherwise, there is error when usingit command in magin-* mode (add-hook 'elscreen-screen-update-hook (lambda () (let ((el-dir (elscreen-get-default-directory (elscreen-get-current-screen)))) - (unless (string-match "magit" (symbol-name major-mode)) + (unless (member major-mode elscreen-exclude-modes) (if (> (length el-dir) 0) (cd el-dir))))))