X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=fb0e3780403107a650e704acd6b03c0d0a40124a;hb=3b1cbb1e77020f84f07811dbd30a8afed2076225;hp=97ca5d289daf645d4884efcab60988d6cff63f6e;hpb=2648396d07620aca805367b06cfa3be8d8f9bc4f;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index 97ca5d2..fb0e378 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -640,7 +640,6 @@ 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 - (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) @@ -666,6 +665,8 @@ Some global bindings on =Super=, on Mac, it is =Command= (global-set-key (kbd "s-n") 'persp-next) (global-set-key (kbd "s-p") 'persp-prev) + (global-set-key (kbd "s-=") 'text-scale-increase) + (global-set-key (kbd "s--") 'text-scale-decrease) ;; someothers default mapping on super (command) key @@ -1188,9 +1189,9 @@ and Defined keys, using vi keybindings, Refer abo-abo's setting [[https://github * Eshell *** Eshell alias #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (defalias 'e 'ido-find-file) - (defalias 'ff 'ido-find-file) - (defalias 'ee 'ido-find-file-other-window) + (defalias 'e 'find-file) + (defalias 'ff 'find-file) + (defalias 'ee 'find-files) #+END_SRC *** Eshell erase buffer @@ -1247,6 +1248,7 @@ Toggle an eshell in split window below, refer [[http://www.howardism.org/Technic (global-set-key (kbd "M-`") 'sd/toggle-eshell-here) #+END_SRC +*** TODO smart display * Misc Settings ** [[https://github.com/abo-abo/hydra][Hydra]] @@ -1334,11 +1336,13 @@ 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" delete-other-windows "one" :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") @@ -1356,6 +1360,30 @@ Refer [[https://github.com/abo-abo/hydra/blob/master/hydra-examples.el][hydra-ex #+END_SRC +*** hydra misc +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (defhydra sd/hydra-misc () + "Miscellaneous Commands" + ("e" eshell "eshell" :color red :exit t) + ("p" (lambda () + (interactive) + (if (sd/buffer-exist "*Packages*") + (switch-to-buffer "*Packages*") + (package-list-packages))) + "list-package" :color red :exit t) + ("g" magit-status "git-status" :color red :exit t)) +#+END_SRC + +*** hydra launcher +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (defhydra hydra-launcher (:color blue :columns 2) + "Launch" + ("h" man "man") + ("s" eshell "eshell") + ("p" package-list-packages "Package") + ("q" nil "cancel")) +#+END_SRC + ** Line Number Enable linum mode on programming modes @@ -1612,6 +1640,25 @@ Play Go in Emacs, gnugo xpm refert [[https://github.com/okanotor/dotemacs/blob/f #+END_SRC +** dired +=C-o= is defined as a global key for window operation, here unset it in dired mode +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (add-hook 'dired-mode-hook (lambda () + (local-unset-key (kbd "C-o")) + (local-set-key (kbd "o") 'dired-display-file))) +#+END_SRC + +** Info plus +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (el-get-bundle info+ + :url "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/master/info+.el" + (require 'info+)) +#+END_SRC + +** TODO bookmark + +** TODO Calendar + * Programming ** Languages @@ -1637,16 +1684,15 @@ 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 - (define-key lispy-mode-map (kbd "M-o") nil))) + `(progn + (define-key lispy-mode-map (kbd "M-o") nil) + (define-key lispy-mode-map (kbd "C-d") nil))) :config (add-hook 'emacs-lisp-mode-hook (lambda () (lispy-mode 1)))) - #+END_SRC *** Perl @@ -1825,7 +1871,143 @@ company mode #+END_SRC -* Todo +* Markdown mode +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (use-package markdown-mode + :ensure t + :commands (markdown-mode gfm-mode) + :mode (("README\\.md\\'" . gfm-mode) + ("\\.md\\'" . markdown-mode) + ("\\.markdown\\'" . markdown-mode)) + :init (setq markdown-command "multimarkdown")) +#+END_SRC + +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (use-package markdown-preview-eww + :ensure t) +#+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" + user-full-name "Peng Li") -- change M-o to trigger to delete other windows and restore previous config + (setq gnus-select-method + '(nnimap "gmail" + (nnimap-address "imap.gmail.com") + (nnimap-server-port "imaps") + (nnimap-stream ssl))) + (setq smtpmail-smtp-service 587 + gnus-ignored-newsgroups "^to\\.\\|^[0-9. ]+\\( \\|$\\)\\|^[\"]\"[#'()]") + + ;; Use gmail sending mail + (setq message-send-mail-function 'smtpmail-send-it + smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil)) + smtpmail-auth-credentials '(("smtp.gmail.com" 587 "seudut@gmail.com" nil)) + smtpmail-default-smtp-server "smtp.gmail.com" + smtpmail-smtp-server "smtp.gmail.com" + smtpmail-smtp-service 587 + starttls-use-gnutls t) +#+END_SRC + +And put the following in =~/.authinfo= file, replacing == with your email address +and == with the password +#+BEGIN_EXAMPLE + machine imap.gmail.com login password port imaps + machine smtp.gmail.com login password port 587 +#+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) + + + + (setq gnus-extract-address-components + 'mail-extract-address-components) + ;; 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) + + + +#+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))))) + + ;; (add-hook 'gnus-group-mode-map (lambda () + ;; (gnus-group-select-group "INBOX"))) +#+END_SRC + +* key +- passion +- vision +- mission