emacs: elscreen fix magit default-directory changed issue.
authorPeng Li <seudut@gmail.com>
Mon, 25 May 2015 14:45:17 +0000 (22:45 +0800)
committerPeng Li <seudut@gmail.com>
Mon, 25 May 2015 14:45:17 +0000 (22:45 +0800)
now, when major-mode is "magit*", don't change default-direcory
in elscreen-screen-update-hook

emacs.d/config/init-elscreen.el
emacs.d/init.el

index 439752a..449606f 100644 (file)
@@ -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 "<M-tab>") '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))
 
 
 
 ;;                 (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)
index eea7c4b..dec8eb3 100644 (file)
 
 (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