(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)
;; set temp file path for recentf and auto-save
(setq recentf-save-file (concat sd-temp-directory "recentf"))
+ (setq recentf-max-saved-items 1000)
(setq auto-save-list-file-prefix (concat sd-temp-directory "auto-save-list/.saves-"))
#+END_SRC
#+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-h f") 'counsel-describe-function)
+ ;; (global-set-key (kbd "C-h v") 'counsel-describe-variable)
+ (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
*** hydra install
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package hydra
- :ensure t)
- ;; disable new line in minibuffer when hint hydra
- (setq hydra-lv nil)
+ :ensure t
+ ;; disable new line in minibuffer when hint hydra
+ :init
+ (setq hydra-lv nil))
#+END_SRC
*** Windmove Splitter
("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)
** goto-last-change
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (use-package goto-last-change
- :ensure t)
+ ;; (use-package goto-last-change
+ ;; :ensure t)
#+END_SRC
** Ag
("\\.csv\\'" "libreoffice")
("\\.tex\\'" "pdflatex" "latex")
("\\.\\(?:mp4\\|mkv\\|avi\\|rmvb\\|flv\\|ogv\\)\\(?:\\.part\\)?\\'" "mplayer")
- ("\\.\\(?:mp3\\|flac\\)\\'" "rhythmbox")
+ ("\\.\\(?:mp3\\|flac\\|wav\\)\\'" "mplayer")
("\\.html?\\'" "open")
("\\.dmg\\'" "open")
("\\.cue?\\'" "audacious")))
(defun sd/dired-start-process (cmd &optional file-list)
(interactive
- (let ((files (dired-get-marked-files
- t current-prefix-arg)))
+ (let ((files (dired-get-marked-files t current-prefix-arg)))
(list
- (unless (eq system-type 'windows-nt)
- (dired-read-shell-command "& on %s: "
- current-prefix-arg files))
+ (dired-read-shell-command "& on %s: " current-prefix-arg files)
files)))
- (if (eq system-type 'windows-nt)
- (dolist (file file-list)
- (w32-shell-execute "open" (expand-file-name file)))
- (let (list-switch)
- (start-process
- cmd nil shell-file-name
- shell-command-switch
- (format
- "nohup 1>/dev/null 2>/dev/null %s \"%s\""
- cmd
- ;; (if (and (> (length file-list) 1)
- ;; (setq list-switch
- ;; (cadr (assoc cmd ora-dired-filelist-cmd))))
- ;; (format "%s %s" cmd list-switch)
- ;; cmd)
- (mapconcat #'expand-file-name file-list "\" \""))))))
+ ;; (let (list-switch))
+ (start-process
+ cmd nil shell-file-name
+ shell-command-switch
+ (format
+ "nohup 1>/dev/null 2>/dev/null %s \"%s\""
+ cmd
+ ;; (if (and (> (length file-list) 1)
+ ;; (setq list-switch
+ ;; (cadr (assoc cmd ora-dired-filelist-cmd))))
+ ;; (format "%s %s" cmd list-switch)
+ ;; cmd)
+ (mapconcat #'expand-file-name file-list "\" \""))))
+
+
+
#+END_SRC
** dired-hacks
;; 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=