Most config are just copied from [[https://github.com/howardabrams/dot-files][howardabrams]]'s and [[https://github.com/abo-abo/oremacs][abo-abo's]] dotfiles
* Basic Settings
-
** Setting loading Path
Set system PATH and emacs exec path
#+END_SRC
-** Window Setting
-
-Disable scroll bar, tool-bar and menu-bar
-
+** General Setting
+*** scroll bar, tool-bar and menu-bar
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(scroll-bar-mode 0)
(tool-bar-mode 0)
(setq make-backup-files nil)
#+END_SRC
-set custom file
-
+*** Custom file
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(setq custom-file "~/.emacs.d/custom.el")
(if (file-exists-p custom-file)
(load custom-file))
-
#+END_SRC
-Switch the focus to help window when it appears
-
+*** Switch the focus to help window when it appears
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(setq help-window-select t)
-
-#+END_SRC
-
-Setting scroll right/left
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- ; (global-set-key (kbd "C-,") 'scoll-left)
- ; (global-set-key (kbd "C-.") 'scoll-right)
#+END_SRC
-Set default window size
+*** Set default window size
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(setq initial-frame-alist
'((width . 120)
(height . 50)))
#+END_SRC
-Stop auto save
+*** Stop auto save
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(setq auto-save-default nil)
;; (desktop-save-mode t)
#+END_SRC
+*** Save minibuffer history
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (savehist-mode 1)
+ (setq history-length 1000)
+#+END_SRC
+
+*** temp folder
+Make a temp directory for all cache/history files
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (defconst sd-temp-directory
+ (file-name-as-directory "~/.emacs.d/temp"))
+
+ (unless (file-exists-p sd-temp-directory)
+ (mkdir sd-temp-directory))
+#+END_SRC
+
* Package Management Tools
** Use-package
(global-set-key (kbd "C-=") 'er/expand-region))
#+END_SRC
-** Motion
-** Search & highlight
-
* Key bindings
** Esc on Minibuffer
#+END_SRC
-** =Ctrl= key bindings
-
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- ;;
-
- ;; C-h help
- ;; C-j newline and indent
- ;; C-k kill line
- ;; C-l recenter-top-bottom
- ;; (global-set-key (kbd "C-;") 'ido-switch-buffer)
- ;; C-;
- ;; C-'
- ;; C-ret
-
- ;; C-n next-line
- ;; C-m
- ;; C-,
- ;; C-.
- ;; C-/
-
- ;; C-y
- ;; C-u
- ;; C-i
- ;; C-o
- ;; C-p
- ;; C-[
- ;; C-]
- ;; C-\
-
- ;; C-=
- ;; C--
- ;; C-0
- ;; C-9
- ;; C-8
- ;; C-7
-
- ;; C-Space
-#+END_SRC
-
** =Super= bindings for file, buffer and windows
Some global bindings on =Super=, on Mac, it is =Command=
#+END_SRC
** Search Replace and highlight
-*** Occur
-Occur search key bindings
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (add-hook 'occur-hook (lambda ()
- (switch-to-buffer-other-window "*Occur*")
- (define-key occur-mode-map (kbd "C-o") nil)))
- ;; auto select occur window
-
- (define-key occur-mode-map (kbd "C-n")
- (lambda ()
- (interactive)
- (occur-next)
- (occur-mode-goto-occurrence-other-window)
- (recenter)
- (other-window 1)))
-
- (define-key occur-mode-map (kbd "C-p")
- (lambda ()
- (interactive)
- (occur-prev)
- (occur-mode-goto-occurrence-other-window)
- (recenter)
- (other-window 1)))
-
- (use-package color-moccur
- :ensure t
- :commands (isearch-moccur isearch-all)
- :init
- (setq isearch-lazy-highlight t)
- :config
- (use-package moccur-edit))
-#+END_SRC
-
*** swiper
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (use-package swiper
- :ensure t)
+ ;; (use-package swiper
+ ;; :ensure t)
- (ivy-mode 1)
- (setq ivy-use-virtual-buffers t)
- (global-set-key (kbd "s-/") 'swiper)
+ ;; (ivy-mode 1)
+ ;; (setq ivy-use-virtual-buffers t)
+ ;; (global-set-key (kbd "s-/") 'swiper)
(use-package counsel
:ensure t
;; (global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
;; ;; (define-key read-expression-map (kbd "C-r") 'counsel-expression-history)
- (set-face-attribute
- 'ivy-current-match nil
- :background "Orange"
- :foreground "black")
+ ;; (set-face-attribute
+ ;; 'ivy-current-match nil
+ ;; :background "Orange"
+ ;; :foreground "black")
+
+ ;; ivy-resume
+ ;; (define-key swiper-map (kbd "M-%") 'swiper-aa-replace)
#+END_SRC
*** =M-s= prefix
;; M-u,
#+END_SRC
-** =M-o= as prefix key for windows
-
-** =M-g= as prefix key for launcher
-
* Org-mode Settings
** Org-mode Basic setting
(setq org-src-window-setup 'current-window )
(define-key org-mode-map (kbd "C-'") nil)
+ ;; C-M-i is mapped to imenu globally
+ (define-key org-mode-map (kbd "C-M-i") nil)
+
+ ;; set the ditta.jar path
+ (setq org-ditaa-jar-path "/usr/local/Cellar/ditaa/0.9/libexec/ditaa0_9.jar")
+ (unless
+ (file-exists-p org-ditaa-jar-path)
+ (error "seudut: ditaa.jar not found at %s " org-ditaa-jar-path))
#+END_SRC
** Org-bullets
(defalias 'ee 'find-files)
#+END_SRC
+*** eshell temp directory
+set default eshell history folder
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (setq eshell-directory-name (concat sd-temp-directory "eshell"))
+#+END_SRC
+
*** Eshell erase buffer
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(defun sd/eshell-clear-buffer ()
Enable linum mode on programming modes
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(add-hook 'prog-mode-hook 'linum-mode)
-
+ ;; (add-hook 'prog-mode-hook (lambda ()
+ ;; (setq-default indicate-empty-lines t)))
#+END_SRC
Fix the font size of line number
("i" ace-maximize-window "ace-one" :exit t)
("b" ido-switch-buffer "buf" :exit t)
("C-b" ido-switch-buffer "buf" :exit t)
- ("m" bookmark-jump-other-window "open bmk")
- ("M" bookmark-set "set bmk")
+ ("m" bookmark-jump-other-window "open bmk" :exit t)
+ ("M" bookmark-set "set bmk" :exit t)
("q" nil "cancel")
("u" (progn (winner-undo) (setq this-command 'winner-undo)) "undo")
("r" (progn (winner-redo) (setq this-command 'winner-redo)) "redo")
- ("C-h" nil :exit t)
- ("C-j" nil :exit t)
+ ("C-h" nil nil :exit t)
+ ("C-j" nil nil :exit t)
;; ("C-k" nil :exit t)
- ("C-l" nil :exit t)
- ("C-;" nil :exit t)
- ("p" nil :exit t)
- ("n" nil :exit t)
- ("[" nil :exit t)
- ("]" nil :exit t)
+ ("C-l" nil nil :exit t)
+ ("C-;" nil nil :exit t)
+ ("p" nil nil :exit t)
+ ("n" nil nil :exit t)
+ ("[" nil nil :exit t)
+ ("]" nil nil :exit t)
("f" nil))
(global-unset-key (kbd "C-o"))
- undo, redo - undo-tree
- select, expand-region
- spell check, flyspell
--
-** Motion - =M=g=
+
+** Motion - =C-M-=
Use =Avy= for motion
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package avy
:ensure t
:config
- (avy-setup-default)
- )
+ (avy-setup-default))
(global-set-key (kbd "C-M-j") 'avy-goto-line-below)
(global-set-key (kbd "C-M-n") 'avy-goto-line-below)
;; M-g M-p previous-error
#+END_SRC
+=imenu=, mapping =C-M-i= to =counsel-imenu=
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (global-unset-key (kbd "C-M-i"))
+ (global-set-key (kbd "C-M-i") #'counsel-imenu)
+#+END_SRC
+
** Search & Replace / hightlight =M-s=
*** search
*** replace
*** hightlight
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+
+ ;; (defhydra sd/search-highlight (:color red :columns nil)
+ ;; "search"
+ ;; ("M-s" . isearch-forward-regexp "search-forward" :exit t)
+ ;; ("s" . isearch-forward-regexp "search-forward" :exit t)
+ ;; ("r" . isearch-backward-regexp "search-backward" :exit t)
+ ;; )
+
+ ;; (setq-default indicate-empty-lines t)
+#+END_SRC
+
+*** Occur
+Occur search key bindings
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (defun sd/occur-keys ()
+ "My key bindings in occur-mode"
+ (interactive)
+ (switch-to-buffer-other-window "*Occur*")
+ (define-key occur-mode-map (kbd "C-o") nil)
+ (define-key occur-mode-map (kbd "C-n") (lambda ()
+ (interactive)
+ (occur-next)
+ (occur-mode-goto-occurrence-other-window)
+ (recenter)
+ (other-window 1)))
+ (define-key occur-mode-map (kbd "C-p") (lambda ()
+ (interactive)
+ (occur-prev)
+ (occur-mode-goto-occurrence-other-window)
+ (recenter)
+ (other-window 1))))
+
+ (add-hook 'occur-hook #'sd/occur-keys)
+
+ (use-package color-moccur
+ :ensure t
+ :commands (isearch-moccur isearch-all)
+ :init
+ (setq isearch-lazy-highlight t)
+ :config
+ (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
+
+* TODO Temp directory for cached/history/temp files
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package recentf
+ :config
+ (setq recentf-save-file (concat sd-temp-directory "recentf")))
+
+ (use-package projectile
+ :config
+ (setq projectile-cache-file (concat sd-temp-directory "projectile.cache")))
+
+ (use-package ido
+ :config
+ (setq ido-save-directory-list-file (concat sd-temp-directory "ido.last")))
+
+ (use-package savehist
+ :config
+ (setq savehist-file (concat sd-temp-directory "history")))
+
+ (use-package emms
+ :config
+ (setq emms-directory (concat sd-temp-directory "emms")))
+
+ (setq auto-save-list-file-prefix (concat sd-temp-directory "auto-save-list/.saves-"))
+
+ (use-package smex
+ :config
+ (setq smex-save-file (concat sd-temp-directory "smex-items")))
+#+END_SRC
+
+* test
+#+BEGIN_SRC ditaa :file temp/hello-world.png :cmdline -r
++--------------+
+| |
+| Hello World! |
+| |
++--------------+
+#+END_SRC
+
+#+RESULTS:
+[[file:temp/hello-world.png]]
+
+
+* =C-u C-h a= search funtions
+=apropos-command=