X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=f587ecd25476d2cbc514a092d13689fa87a5b79c;hb=9d098b3ab71fc005e846e7baf7a574b876d7a44c;hp=b388ed77e059268493d7de7b42d9457f49857277;hpb=41edc2ca720b5468fb20f0776255c9d40251e9af;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index b388ed7..f587ecd 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -640,15 +640,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 +727,53 @@ 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))) + + ;; (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 "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) - (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") + (defhydra sd/search-buffer (:color red :columns nil) + "M-s" + ("w" save-buffer "save" :exit) + ("s" isearch-forward-regrexp "search-forward" :exit) + ("r" isearch-backward-regrexp "search-backward" :exit) + ("s" save-buffer "save" :exit) + ("s" save-buffer "save" :exit) + ("s" save-buffer "save" :exit) + ("s" save-buffer "save" :exit) + ("s" save-buffer "save" :exit) + ("s" save-buffer "save" :exit) + ("s" save-buffer "save" :exit) + ("s" save-buffer "save" :exit) + ("q" nil "quil") + ("f" nil)) + + + ;; (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 @@ -1311,7 +1335,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 +1359,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 +1375,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 +1599,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 +1702,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 +1905,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" @@ -1925,8 +1944,6 @@ Then Run =M-x gnus= (use-package gnus :init (setq gnus-permanently-visible-groups "\.*") - :defer t - :commands gnus :config (cond (window-system (setq custom-background-mode 'light) @@ -1964,16 +1981,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 + + + + +