emacs - toggle-project-eshell
[dotfiles.git] / emacs.d / config.org
index cca09e9..0dbf2d5 100644 (file)
@@ -362,7 +362,8 @@ clean mode line, Refer to [[https://www.masteringemacs.org/article/hiding-replac
       (org-indent-mode . "")
       ;; default is  Fly
       (flyspell-mode . "")
-      (irony-mode . "I")
+      (irony-mode . "")
+      (page-break-lines-mode . "")
       ;; Major modes
       (lisp-interaction-mode . "λ")
       (hi-lock-mode . "")
@@ -1068,7 +1069,7 @@ Toggle an eshell in split window below, refer [[http://www.howardism.org/Technic
                     nil nil)
       ret))
 
-  (defun sd/toggle-eshell-here ()
+  (defun sd/toggle-project-eshell ()
     "Toggle a eshell buffer vertically"
     (interactive)
     (if (sd/window-has-eshell)
@@ -1079,20 +1080,26 @@ Toggle an eshell in split window below, refer [[http://www.howardism.org/Technic
                 (delete-window)))
           (select-window (sd/window-has-eshell)))
       (progn
-        (let ((dir default-directory))
+        (split-window-vertically (- (/ (window-total-height) 3)))
+        (other-window 1)
+        (if (projectile-project-p)
+            (projectile-run-eshell)
+          (eshell))
+        ;; (let ((dir default-directory))
         
-          (split-window-vertically (- (/ (window-total-height) 3)))
-          (other-window 1)
-          (unless (and (boundp 'eshell-buffer-name) (get-buffer eshell-buffer-name))
-            (eshell))
-          (switch-to-buffer eshell-buffer-name)
-          (goto-char (point-max))
-          (eshell-kill-input)
-          (insert (format "cd %s" dir))
-          (eshell-send-input)))))
+        ;;   (split-window-vertically (- (/ (window-total-height) 3)))
+        ;;   (other-window 1)
+        ;;   (unless (and (boundp 'eshell-buffer-name) (get-buffer eshell-buffer-name))
+        ;;     (eshell))
+        ;;   (switch-to-buffer eshell-buffer-name)
+        ;;   (goto-char (point-max))
+        ;;   (eshell-kill-input)
+        ;;   (insert (format "cd %s" dir))
+        ;;   (eshell-send-input))
+        )))
 
   ;; (global-unset-key (kbd "M-`"))
-  (global-set-key (kbd "s-e") 'sd/toggle-eshell-here)
+  (global-set-key (kbd "s-e") 'sd/toggle-project-eshell)
 #+END_SRC
 
 ** exec-path-from-shell
@@ -2230,10 +2237,10 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
     (:map projectile-mode-map
           ("s-t" . projectile-persp-switch-project)))
 
-  (defun sd/change-default-directory (buffer dir)
-    "change defafult directory of buffer to dir"
-    (with-current-buffer buffer
-      (cd dir)))
+  ;; (defun sd/change-default-directory (buffer dir)
+  ;;   "change defafult directory of buffer to dir"
+  ;;   (with-current-buffer buffer
+  ;;     (cd dir)))
 
   ;; change default-directory of scratch buffer to projectile-project-root 
   (defun sd/project-switch-action ()
@@ -2242,7 +2249,11 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
     (dolist (buffer (buffer-list))
       (if (string-match (concat "scratch.*" (projectile-project-name))
                         (buffer-name buffer))
-          (sd/change-default-directory buffer (projectile-project-root)))))
+          (let ((root (projectile-project-root)))
+            (with-current-buffer buffer
+              (cd root)))
+        ;; (sd/change-default-directory buffer (projectile-project-root))
+        )))
 #+END_SRC
 
 *** project config =super= keybindings
@@ -2388,7 +2399,7 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del
     ("C-o" ido-switch-buffer nil :exit t)
     ("d" sd/project-or-dired-jump nil :exit t)
     ("b" ibuffer nil :exit t)
-    ("e" eshell nil :exit t)
+    ("e" sd/toggle-project-eshell nil :exit t)
     ("m" bookmark-jump-other-window nil :exit t)
     ("M" bookmark-set nil :exit t)
     ("g" magit-status nil :exit t)