X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=d1eff001846f1241dff4021146d60e02415432b5;hb=7368940df9d58c28203ccb8e6a08ee947b14cd8d;hp=37b75c5d4ae3c29dd1314a1fef52f396da0fc423;hpb=3d3aa028bd5f10501aaa930b91ab3da56f9b9238;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index 37b75c5..d1eff00 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -44,7 +44,7 @@ Set the emacs load path #+END_SRC -** General Setting +** Window Setting Disable scroll bar, tool-bar and menu-bar @@ -86,6 +86,13 @@ Setting scroll right/left ; (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 @@ -640,15 +647,17 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g= 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-; --> @@ -725,31 +734,37 @@ Some global bindings on =Super=, on Mac, it is =Command= #+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) + (sd/make-keymap "\M-s" + '(("w" . save-buffer) + ("\M-w" . save-buffer) + ("e" . revert-buffer) + ("s" . isearch-forward-regexp) + ("r" . isearch-backward-regexp) + ("o" . occur))) - (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) + ;; (define-key isearch-mode-map (kbd "s") 'isearch-repeat-forward) + ;; (define-key isearch-mode-map (kbd "r") 'isearch-repeat-forward) + (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-/") '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") + + + ;; (global-unset-key (kbd "M-s")) + ;; (global-set-key (kbd "M-s") 'sd/search-buffer) + ;; M-s o --> occur ;; M-s s --> isearch-forward-regexp ;; M-s r --> isearch-backward-regexp @@ -778,6 +793,8 @@ I use the prefix =M-s= for searching in buffers Occur search key bindings #+BEGIN_SRC emacs-lisp :tangle yes :results silent + (add-hook 'occur-hook (lambda () (switch-to-buffer-other-window "*Occur*"))) + ;; auto select occur window (define-key occur-mode-map (kbd "C-n") (lambda () @@ -794,7 +811,6 @@ Occur search key bindings (occur-mode-goto-occurrence-other-window) (recenter) (other-window 1))) - #+END_SRC @@ -802,15 +818,6 @@ Occur search key bindings ** =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 @@ -863,6 +870,9 @@ use [[https://github.com/sabof/org-bullets][org-bullets]] package to show utf-8 (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 @@ -1311,7 +1321,6 @@ Refer [[https://github.com/abo-abo/hydra/blob/master/hydra-examples.el][hydra-ex #+END_SRC *** hydra-window - #+BEGIN_SRC emacs-lisp :tangle yes :results silent (winner-mode 1) @@ -1336,11 +1345,14 @@ Refer [[https://github.com/abo-abo/hydra/blob/master/hydra-examples.el][hydra-ex (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") @@ -1349,13 +1361,6 @@ Refer [[https://github.com/abo-abo/hydra/blob/master/hydra-examples.el][hydra-ex (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 @@ -1580,14 +1585,15 @@ Play Go in Emacs, gnugo xpm refert [[https://github.com/okanotor/dotemacs/blob/f #+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 @@ -1682,16 +1688,14 @@ In Lisp Mode, =M-o= is defined, but I use this for global hydra window. So here 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 @@ -1887,6 +1891,7 @@ company mode #+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" @@ -1919,6 +1924,42 @@ and == with the password #+END_EXAMPLE Then Run =M-x gnus= + +** Group buffer +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (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-fetch-old-headers 't) @@ -1926,16 +1967,62 @@ Then Run =M-x gnus= (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 - passion - vision - mission + + + + +