(elscreen-set-default-directory (elscreen-get-current-screen) "~/")
-;; change default keybinding
-(global-set-key (kbd "<M-tab>") 'elscreen-next) ;; "C-M-I"
-(global-set-key (kbd "M-n") 'elscreen-next)
-(global-set-key (kbd "M-p") 'elscreen-previous)
-(global-set-key (kbd "M-t") 'elscreen-create)
-;;; split
-
;; tab face
(cd dir)
)
+
(defun sd-show-dir ()
"show elscreen default directory."
(interactive)
+
;;(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))))))