emacs - key-bindings
[dotfiles.git] / emacs.d / config / init-elscreen.el
index 439752a..3edbacf 100644 (file)
@@ -1,13 +1,7 @@
 ;; this config file is based on  seudut/elscreen.git, which added two interface and one property 
 ;; default directory
 
-
-;; 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 
+(elscreen-set-default-directory (elscreen-get-current-screen) "~/")
 
 
 ;; tab face
@@ -34,6 +28,7 @@
   (cd dir)
 )
 
+    
 (defun sd-show-dir ()
   "show elscreen default directory."
   (interactive)
@@ -43,7 +38,8 @@
 (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))
+
 
 
 
 ;;              (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 (member  major-mode elscreen-exclude-modes)
+                (if (> (length el-dir) 0)
+                  (cd el-dir))))))
+
+
+
+
+
+;; elscreen should be placed begin of https://github.com/knu/elscreen/issues/6
+;(elscreen-start)
+;(require 'init-elscreen)
+;(require 'elscreen)
+;(custom-set-faces
+; '(elscreen-tab-current-screen-face ((t (:background "Yellow" :foreground "black"))))
+; '(elscreen-tab-other-screen-face ((t (:background "gray22" :foreground "black")))))
+
+
+
+
 
 (provide 'init-elscreen)