From e2608f79926963347b954e90ee5812dbbd70bdba Mon Sep 17 00:00:00 2001 From: Peng Li Date: Mon, 25 May 2015 22:45:17 +0800 Subject: [PATCH 1/1] emacs: elscreen fix magit default-directory changed issue. now, when major-mode is "magit*", don't change default-direcory in elscreen-screen-update-hook --- emacs.d/config/init-elscreen.el | 12 +++++++++++- emacs.d/init.el | 3 --- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/emacs.d/config/init-elscreen.el b/emacs.d/config/init-elscreen.el index 439752a..449606f 100644 --- a/emacs.d/config/init-elscreen.el +++ b/emacs.d/config/init-elscreen.el @@ -1,6 +1,7 @@ ;; this config file is based on seudut/elscreen.git, which added two interface and one property ;; default directory +(elscreen-set-default-directory (elscreen-get-current-screen) "~/") ;; change default keybinding (global-set-key (kbd "") 'elscreen-next) ;; "C-M-I" @@ -43,7 +44,7 @@ (defun sd-update-elscreen-dir () "update elscreen dir as current default directory" (interactive) - (elscreen-set-default-directory (elscreen-get-current-scren) default-directory)) + (elscreen-set-default-directory (elscreen-get-current-screen) default-directory)) @@ -54,4 +55,13 @@ ;; (cd el-dir))))) +;; 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)) + (if (> (length el-dir) 0) + (cd el-dir)))))) + + (provide 'init-elscreen) diff --git a/emacs.d/init.el b/emacs.d/init.el index eea7c4b..dec8eb3 100644 --- a/emacs.d/init.el +++ b/emacs.d/init.el @@ -151,8 +151,5 @@ (global-set-key (kbd "M-g M-w") 'other-window) -;(global-set-key (kbd "C-g C-k") 'windmove-up) -;(global-set-key (kbd "C-g C-j") 'windmove-down) - ;;;; show default directory on mode-line -- 2.11.0