#+END_SRC
-** General Setting
+** Window Setting
Disable scroll bar, tool-bar and menu-bar
; (global-set-key (kbd "C-.") 'scoll-right)
#+END_SRC
+Set default window size
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (setq initial-frame-alist
+ '((width . 120)
+ (height . 50)))
+#+END_SRC
+
* Package Management Tools
** Use-package
Some global bindings on =Super=, on Mac, it is =Command=
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (defun sd/delete-current-window ()
+ (interactive)
+ (if (> (length (window-list)) 1)
+ (delete-window)
+ (message "Only one Windows now!")))
+
(global-set-key (kbd "s-h") 'keyboard-quit)
(global-set-key (kbd "s-j") 'ido-switch-buffer)
(global-set-key (kbd "s-k") 'ido-find-file)
;; s-k --> kill-this-buffer
- (global-set-key (kbd "s-l") (lambda ()
- (interactive)
- (if (> (length (window-list)) 1)
- (delete-window)
- (message "Only one Windows now!"))))
+ (global-set-key (kbd "s-l") 'sd/delete-current-window)
;; s-l --> goto-line
(global-set-key (kbd "s-;") 'swiper)
;; s-; -->
#+END_SRC
** =M-s= bindings for searching
-
-I use the prefix =M-s= for searching in buffers
-
+use the prefix =M-s= for searching in buffers
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
- (defun pl-make-keymap (key bindings)
+ (defun sd/make-keymap (key bindings)
(setq keymap (make-sparse-keymap))
(dolist (binding bindings)
(define-key keymap (car binding) (cdr binding)))
(global-set-key key keymap))
- (define-key minibuffer-local-map "\M-s" nil)
+ (use-package highlight-symbol
+ :ensure t)
- (global-set-key (kbd "M-s s") 'isearch-forward-regexp)
- (define-key isearch-mode-map "\M-s" 'isearch-repeat-forward)
- (global-set-key (kbd "M-s r") 'isearch-backward-regexp)
- (define-key isearch-mode-map "\M-r" 'isearch-repeat-backward)
+ (sd/make-keymap "\M-s"
+ '(("w" . save-buffer)
+ ;; ("\M-w" . save-buffer)
+ ("W" . revert-buffer)
+ ("s" . isearch-forward-regexp)
+ ("r" . isearch-backward-regexp)
+ ("." . isearch-forward-symbol-at-point)
+ ("o" . occur)
+ ;; ("h" . highlight-symbol-at-point)
+ ("h" . highlight-symbol)
+ ("m" . highlight-regexp)
+ ("l" . highlight-lines-matching-regexp)
+ ("M" . unhighlight-regexp)
+ ("f" . keyboard-quit)
+ ("q" . keyboard-quit)))
+
+ ;; search and replace
+ (define-key isearch-mode-map (kbd "M-s") 'isearch-repeat-forward)
+ (define-key isearch-mode-map (kbd "M-r") 'isearch-repeat-backward)
+ (global-set-key (kbd "s-[") 'highlight-symbol-next)
+ (global-set-key (kbd "s-]") 'highlight-symbol-prev)
+ (global-set-key (kbd "s-\\") 'highlight-symbol-query-replace)
- (global-set-key (kbd "s-/") 'isearch-forward-regexp)
- (define-key isearch-mode-map (kbd "s-/") 'isearch-repeat-forward)
- (define-key isearch-mode-map (kbd "C-n") 'isearch-repeat-forward)
+
+ (define-key minibuffer-local-map "\M-s" nil)
(set-face-background 'ido-first-match "white")
- ;; M-s o --> occur
- ;; M-s s --> isearch-forward-regexp
- ;; M-s r --> isearch-backward-regexp
- ;; M-s w --> isearch-forward-word
- ;; M-s . --> isearch-forward-symbol-at-point
- ;; M-s _ --> isearch-forward-symbol
-
- ;; highlight bindings
- ;; M-s h . --> highlight-symbol-at-point
- ;; M-s h r --> highlight-regexp
- ;; M-s h u --> unhighlight-regexp
- ;; M-s h l --> highlight-lines-match-regexp
- ;; M-s h p --> highlight-phrase
- ;; M-s h f --> hi-lock-find-patterns
-
- ;;
- ;; (global-set-key (kbd "M-s M-r") 'isearch-backward-regexp)
- ;;
+
+
+ ;; M-s h . highlight-symbol-at-point
+ ;; M-s h f hi-lock-find-patterns
+ ;; M-s h l highlight-lines-matching-regexp
+ ;; M-s h p highlight-phrase
+ ;; M-s h r highlight-regexp
+ ;; M-s h u unhighlight-regexp
+ ;; M-s h w hi-lock-write-interactive-patterns
+
+ ;; M-s M-w eww-search-words
;; M-c
;; M-r
#+END_SRC
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 ()
(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
-
** =M-o= as prefix key for windows
** =M-g= as prefix key for launcher
-** others
-
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
-
- ;; C-' undefined
- ;; C-. undefined
-#+END_SRC
-
* Org-mode Settings
** Org-mode Basic setting
(org-bullets-mode t))))
(setq org-bullets-bullet-list '("⦿" "✪" "◉" "○" "►" "◆"))
+
+ ;; increase font size when enter org-src-mode
+ (add-hook 'org-src-mode-hook (lambda () (text-scale-increase 2)))
#+END_SRC
** Worf Mode
#+END_SRC
*** hydra-window
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(winner-mode 1)
(windmove-down))
"horz" :exit t)
("o" delete-other-windows "one" :exit t)
+ ("C-o" ido-switch-buffer "buf" :exit t)
+ ("C-k" sd/delete-current-window "del" :exit t)
("a" ace-window "ace")
("s" ace-swap-window "swap")
("d" ace-delete-window "ace-one" :exit t)
("i" ace-maximize-window "ace-one" :exit t)
- ("b" ido-switch-buffer "buf")
+ ("b" ido-switch-buffer "buf" :exit t)
+ ("C-b" ido-switch-buffer "buf" :exit t)
;; ("m" headlong-bookmark-jump "bmk")
("q" nil "cancel")
("u" (progn (winner-undo) (setq this-command 'winner-undo)) "undo")
(global-unset-key (kbd "C-o"))
(global-set-key (kbd "C-o") 'sd/hydra-window/body)
-
- (defun triggle-windows-max-size ()
- (interactive)
- (if (> (length (window-list)) 1)
- (delete-other-windows)
- (winner-undo)))
-
#+END_SRC
*** hydra misc
#+END_SRC
** undo-tree
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(use-package undo-tree
:ensure t
:config
+ (define-key undo-tree-visualizer-mode-map "j" 'undo-tree-visualize-redo)
+ (define-key undo-tree-visualizer-mode-map "k" 'undo-tree-visualize-undo)
+ (define-key undo-tree-visualizer-mode-map "h" 'undo-tree-visualize-switch-branch-left)
+ (define-key undo-tree-visualizer-mode-map "l" 'undo-tree-visualize-switch-branch-right)
(global-undo-tree-mode 1))
-
#+END_SRC
** swiper
bindings in =lispy-mode-map= after loaded. see [[http://stackoverflow.com/questions/298048/how-to-handle-conflicting-keybindings][here]]
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(use-package lispy
:ensure t
:init
- (eval-after-load 'lispy
- '(progn
+ (eval-after-load "lispy"
+ `(progn
(define-key lispy-mode-map (kbd "M-o") nil)))
:config
(add-hook 'emacs-lisp-mode-hook (lambda () (lispy-mode 1))))
-
#+END_SRC
*** Perl
#+END_SRC
* Gnus
+** Gmail setting
Refer [[https://www.emacswiki.org/emacs/GnusGmail][GnusGmail]]
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(setq user-mail-address "seudut@gmail.com"
** Group buffer
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (setq gnus-permanently-visible-groups "\.*")
-
- (cond (window-system
- (setq custom-background-mode 'light)
- (defface my-group-face-1
- '((t (:foreground "Red" :bold t))) "First group face")
- (defface my-group-face-2
- '((t (:foreground "DarkSeaGreen4" :bold t)))
- "Second group face")
- (defface my-group-face-3
- '((t (:foreground "Green4" :bold t))) "Third group face")
- (defface my-group-face-4
- '((t (:foreground "SteelBlue" :bold t))) "Fourth group face")
- (defface my-group-face-5
- '((t (:foreground "Blue" :bold t))) "Fifth group face")))
- (setq gnus-group-highlight
- '(((> unread 200) . my-group-face-1)
- ((and (< level 3) (zerop unread)) . my-group-face-2)
- ((< level 3) . my-group-face-3)
- ((zerop unread) . my-group-face-4)
- (t . my-group-face-5)))
+ (use-package gnus
+ :init
+ (setq gnus-permanently-visible-groups "\.*")
+ :config
+ (cond (window-system
+ (setq custom-background-mode 'light)
+ (defface my-group-face-1
+ '((t (:foreground "Red" :bold t))) "First group face")
+ (defface my-group-face-2
+ '((t (:foreground "DarkSeaGreen4" :bold t)))
+ "Second group face")
+ (defface my-group-face-3
+ '((t (:foreground "Green4" :bold t))) "Third group face")
+ (defface my-group-face-4
+ '((t (:foreground "SteelBlue" :bold t))) "Fourth group face")
+ (defface my-group-face-5
+ '((t (:foreground "Blue" :bold t))) "Fifth group face")))
+ (setq gnus-group-highlight
+ '(((> unread 200) . my-group-face-1)
+ ((and (< level 3) (zerop unread)) . my-group-face-2)
+ ((< level 3) . my-group-face-3)
+ ((zerop unread) . my-group-face-4)
+ (t . my-group-face-5))))
+
+
+ ;; key-
+ (add-hook 'gnus-group-mode-hook (lambda ()
+ (define-key gnus-group-mode-map "k" 'gnus-group-prev-group)
+ (define-key gnus-group-mode-map "j" 'gnus-group-next-group)
+ (define-key gnus-group-mode-map "g" 'gnus-group-jump-to-group)
+ (define-key gnus-group-mode-map "v" (lambda () (interactive) (gnus-group-select-group t)))))
#+END_SRC
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(setq gnus-extract-address-components
'mail-extract-address-components)
-
- (setq gnus-summary-line-format "%U%R%z%I%(%[%-20,20f%]%) %s%-67= %11&user-date;\n")
+ ;; summary buffer
+ (setq gnus-summary-line-format "%U%R%z%I%(%[%-20,20f%]%) %s%-80= %11&user-date;\n")
(setq gnus-user-date-format-alist '(((gnus-seconds-today) . "%H:%M")
((+ 86400 (gnus-seconds-today)) . "%a %H:%M")
(604800 . "%a, %b %-d")
(15778476 . "%b %-d")
(t . "%Y-%m-%d")))
+
+ (setq gnus-thread-sort-functions '((not gnus-thread-sort-by-number)))
+ (setq gnus-unread-mark ?\.)
+ (setq gnus-use-correct-string-widths t)
+
+ ;; thread
+ (setq gnus-thread-hide-subtree t)
+
+ ;; (with-eval-after-load 'gnus-summary-mode
+ ;; (define-key gnus-summary-mode-map (kbd "C-o") 'sd/hydra-window/body))
+
+ (add-hook 'gnus-summary-mode-hook (lambda ()
+ (define-key gnus-summary-mode-map (kbd "C-o") nil)))
+
+
+#+END_SRC
+
+** Windows layout
+See [[https://www.emacswiki.org/emacs/GnusWindowLayout][GnusWindowLayout]]
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (gnus-add-configuration
+ '(summary
+ (horizontal 1.0
+ (vertical 35
+ (group 1.0))
+ (vertical 1.0
+ (summary 1.0 poine)))))
+
+ (gnus-add-configuration
+ '(article
+ (horizontal 1.0
+ (vertical 35
+ (group 1.0))
+ (vertical 1.0
+ (summary 0.50 point)
+ (article 1.0)))))
+
+ (with-eval-after-load 'gnus-group-mode
+ (gnus-group-select-group "INBOX"))
+ ;; (add-hook 'gnus-group-mode-map (lambda ()
+ ;; (gnus-group-select-group "INBOX")))
#+END_SRC
* key