From: Peng Li Date: Mon, 25 May 2015 14:45:17 +0000 (+0800) Subject: emacs: elscreen fix magit default-directory changed issue. X-Git-Url: http://47.100.26.94:8080/?a=commitdiff_plain;h=e2608f79926963347b954e90ee5812dbbd70bdba;p=dotfiles.git emacs: elscreen fix magit default-directory changed issue. now, when major-mode is "magit*", don't change default-direcory in elscreen-screen-update-hook --- 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