emacs: elscreen default-directory, exclude eshell-mode to update default directory
authorPeng Li <seudut@gmail.com>
Sat, 30 May 2015 16:42:10 +0000 (00:42 +0800)
committerPeng Li <seudut@gmail.com>
Sat, 30 May 2015 16:42:10 +0000 (00:42 +0800)
emacs.d/config/init-elscreen.el

index 449606f..18d5607 100644 (file)
 
 
 
+
 ;;(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))))))