(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)
#+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
(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)
#+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
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=
;; (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
("q" nil "quit")
("f" nil "quit"))
- (global-set-key (kbd "C-'") 'sd/hydra-misc/body)
+ ;; (global-set-key (kbd "C-'") 'sd/hydra-misc/body)
+
+ (defun sd/exchange-win-layout ()
+ "Change the windos layout."
+ (interactive)
+ (when (equal (length (window-list)) 2)
+ (let ((current-layout (if (or (window-in-direction 'right) (window-in-direction 'left))
+ 'v
+ 'h))
+ (other-buf (window-buffer (or (window-in-direction 'right)
+ (window-in-direction 'left)
+ (window-in-direction 'below)
+ (window-in-direction 'above)))))
+ (delete-other-windows)
+ (if (eq current-layout 'v)
+ (split-window-below)
+ (split-window-right))
+ (other-window 1)
+ (switch-to-buffer other-buf))))
+
+ (defhydra sd/hydra-window-layout (:color red :colums nil)
+ "Window Layout"
+ ("m" sd/toggle-max-windows "Max-win" :exit t)
+ ("s" ace-swap-window "Swap" :exit t)
+ ("d" ace-delete-window "Delete" :exit t)
+ ("x" sd/exchange-win-layout "eXchange" :exit t)
+ ("u" winner-undo "window-Undo" :exit t)
+ ("r" winner-redo "window-Redo" :exit t))
+
+ (with-eval-after-load "evil"
+ (define-key evil-normal-state-map (kbd ";t") 'sd/hydra-window-layout/body))
+
#+END_SRC
*** hydra launcher
;; (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)
;; 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
(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=