Emacs - eshell mapping
[dotfiles.git] / emacs.d / config.org
index 166f110..aea8025 100644 (file)
@@ -44,7 +44,7 @@ Set system PATH and emacs exec path
         (menu-bar-mode 1))
     (menu-bar-mode 0))
 
-  (setq debug-on-error t)
+  ;; (setq debug-on-error t)
   (setq inhibit-startup-message t)
 
   (defalias 'yes-or-no-p 'y-or-n-p)
@@ -608,9 +608,10 @@ set height in mode line
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (use-package ido
     :ensure t
-    :init (setq ido-enable-flex-matching nil
+    :init (setq ido-enable-flex-matching t
                 ido-ignore-extensions t
                 ido-use-virtual-buffers t
+                ido-use-faces nil
                 ido-everywhere t)
     (setq ido-save-directory-list-file (concat sd-temp-directory "ido.last"))
     :config
@@ -623,15 +624,6 @@ set height in mode line
     (define-key ido-file-completion-map (kbd "C-w") #'ido-delete-backward-word-updir)
     (define-key ido-file-dir-completion-map (kbd "C-w") #'ido-delete-backward-updir)
     ;; (define-key ido-file-dir-completion-map (kbd "C-i") #'ido-copy-current-word)
-    
-    ;; (dolist (map (list
-    ;;               ido-buffer-completion-map
-    ;;               ido-file-completion-map
-    ;;               ido-file-dir-completion-map
-    ;;               ido-common-completion-map))
-    ;;   (define-key map (kbd "C-w") #'ido-delete-backward-word-updir)
-    ;;   ;; (define-key map (kbd "C-i") #'ido-copy-current-file-name)
-    ;;   )
     )
 
   (icomplete-mode t)
@@ -641,8 +633,6 @@ set height in mode line
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (use-package flx-ido
     :ensure t
-    :init (setq ido-enable-flex-matching nil
-                ido-use-faces nil)
     :config (flx-ido-mode nil))
 #+END_SRC
 
@@ -695,27 +685,72 @@ Use [[https://github.com/DarwinAwardWinner/ido-ubiquitous][ido-ubiquitous]] for
                   ido-file-dir-completion-map)))
 #+END_SRC
 
-** Counsel
+** helm
+let helm windows split inside current window
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (with-eval-after-load 'helm
+    (setq helm-split-window-in-side-p t))
+#+END_SRC
+
+* Swiper & Ivy & Counsel
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (use-package counsel
     :ensure t
     :defer t
     :init
+    (use-package ivy :ensure t)
+    (ivy-mode 1)
+    (setq ivy-use-virtual-buffers nil
+          ivy-wrap t)
+    (set-face-attribute 'ivy-current-match nil :background "Orange" :foreground "black")
     (global-set-key (kbd "M-x") 'counsel-M-x)
     (global-set-key (kbd "C-h f") 'counsel-describe-function)
     (global-set-key (kbd "C-h v") 'counsel-describe-variable)
-    ;; (set-face-attribute 'ivy-current-match nil :background "Orange" :foreground "black")
+    (global-set-key (kbd "C-x C-f") 'counsel-find-file)
     (define-key read-expression-map (kbd "C-r") 'counsel-expression-history)
     (global-set-key (kbd "C-c C-r") 'ivy-resume))
+
+  (use-package counsel-projectile
+    :ensure t
+    :defer t)
 #+END_SRC
 
-** helm
-let helm windows split inside current window
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  (with-eval-after-load 'helm
-    (setq helm-split-window-in-side-p t))
+  (defun sd/swith-buffer-other-window ()
+    (interactive)
+    (ivy-set-action (cond ((eq (ivy-state-caller ivy-last) 'ivy-switch-buffer)
+                           'ivy--switch-buffer-other-window-action)
+                          ((eq (ivy-state-caller ivy-last) 'counsel-recentf)
+                           'find-file-other-window)
+                          ((eq (ivy-state-caller ivy-last) 'counsel-projectile-find-file)
+                           'counsel-projectile-find-file-action-other-window)
+                          (t
+                           nil)))
+    (ivy-done)
+    (ivy-shrink-after-dispatching))
+
+  (with-eval-after-load "ivy"
+    (define-key ivy-minibuffer-map (kbd "C-o") 'ivy-dispatching-done)
+    (define-key ivy-minibuffer-map (kbd "C-k") #'sd/swith-buffer-other-window))
 #+END_SRC
 
+stolen from [[https://github.com/mariolong/emacs.d/blob/f6a061594ef1b5d1f4750e9dad9dc97d6e122840/emacs-init.org][here]]
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (use-package swiper
+    :ensure t
+    ;; :init
+    :config
+    ;; (ivy-mode)
+    (global-set-key (kbd "s-/") 'swiper)
+    (define-key swiper-map (kbd "M-r") 'swiper-query-replace)
+    (define-key swiper-map (kbd "C-.") (lambda ()
+                                         (interactive)
+                                         (insert (format "%s" (with-ivy-window (thing-at-point 'word))))))
+    (define-key swiper-map (kbd "M-.") (lambda ()
+                                         (interactive)
+                                         (insert (format "%s" (with-ivy-window (thing-at-point 'symbol)))))))
+
+#+END_SRC
 * Org-mode Settings
 ** Org-mode Basic setting
 Always indents header, and hide header leading starts so that no need type =#+STATUP: indent= 
@@ -1323,9 +1358,18 @@ set default eshell history folder
 
   ;; (add-hook 'eshell-mode-hook (lambda ()
   ;;                               (local-set-key (kbd "C-l") 'sd/eshell-clear-buffer)))
-  (add-hook 'eshell-mode-hook (apply-partially #'local-set-key (kbd "C-l") 'sd/eshell-clear-buffer))
   ;; (add-hook 'eshell-mode-map (lambda () (interactive)
   ;;                              (define-key eshell-mode-map (kbd "<tab>") 'completion-at-point)))
+
+  (defun sd/eshell-hook ()
+    (interactive)
+    (define-key eshell-mode-map (kbd "C-j") #'eshell-send-input)
+    (define-key eshell-mode-map (kbd "C-l") #'sd/eshell-clear-buffer))
+
+  (add-hook 'eshell-mode-hook #'sd/eshell-hook)
+
+
+  ;; (add-hook 'eshell-mode-hook (apply-partially #'local-set-key (kbd "C-l") 'sd/eshell-clear-buffer))
 #+END_SRC
 
 ** Toggle Eshell
@@ -1569,6 +1613,7 @@ When see function by =C-h f=, and visit the source code, I would like the buffer
              ;; (eval . (when buffer-file-name
              ;;           (setq-local view-no-disable-on-exit t)
              ;;           (view-mode-enter)))
+             (projectile-enable-caching . nil)
              ))))
 
   ;; (dir-locals-set-directory-class (expand-file-name "/usr/local/share/emacs") 'emacs)
@@ -3090,7 +3135,7 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
 
 
   ;; https://emacs.stackexchange.com/questions/16497/how-to-exclude-files-from-projectile
-  (setq projectile-enable-caching t)
+  ;; (setq projectile-enable-caching t)
   (if (executable-find "rg")
       (progn
         (defconst modi/rg-arguments
@@ -3591,25 +3636,6 @@ Occur search key bindings
     (use-package moccur-edit))
 #+END_SRC
 
-*** Swiper
-stolen from [[https://github.com/mariolong/emacs.d/blob/f6a061594ef1b5d1f4750e9dad9dc97d6e122840/emacs-init.org][here]]
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  (use-package swiper
-    :ensure t
-    :init
-    (setq ivy-use-virtual-buffers t)
-    (set-face-attribute 'ivy-current-match nil :background "Orange" :foreground "black")
-    :config
-    (ivy-mode)
-    (global-set-key (kbd "s-/") 'swiper)
-    (define-key swiper-map (kbd "M-r") 'swiper-query-replace)
-    (define-key swiper-map (kbd "C-.") (lambda ()
-                                         (interactive)
-                                         (insert (format "%s" (with-ivy-window (thing-at-point 'word))))))
-    (define-key swiper-map (kbd "M-.") (lambda ()
-                                         (interactive)
-                                         (insert (format "%s" (with-ivy-window (thing-at-point 'symbol)))))))
-#+END_SRC
 
 ** Expand region map
 *** Install =expand-region=