From 1081bb0e5bcd589e666b4f04c838db18c929e2aa Mon Sep 17 00:00:00 2001 From: Peng Li Date: Sun, 31 May 2015 00:42:10 +0800 Subject: [PATCH] emacs: elscreen default-directory, exclude eshell-mode to update default directory --- emacs.d/config/init-elscreen.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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)))))) -- 2.11.0