X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=fb86b1d8f07ad90aed16fbcba7eb7374f55975a5;hb=113fd12750a3fd88c8573d76d8eaaea4dec122c3;hp=20becc7d6de7e5c6845ff8890bc61cb98bf6d7cd;hpb=877678c8a27cfa05a019a5c20ad376529cfcb664;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index 20becc7..fb86b1d 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -33,9 +33,12 @@ Set system PATH and emacs exec path #+BEGIN_SRC emacs-lisp :tangle yes :results silent (scroll-bar-mode 0) (tool-bar-mode 0) - (menu-bar-mode 1) - ;; (setq debug-on-error t) + (if window-system + (menu-bar-mode 1) + (menu-bar-mode 0)) + + (setq debug-on-error t) (setq inhibit-startup-message t) (defalias 'yes-or-no-p 'y-or-n-p) @@ -152,15 +155,11 @@ Check out [[http://tapoueh.org/emacs/el-get.html][el-get]]. #+END_SRC ** Smart Comments - [[https://github.com/paldepind/smart-comment][smart-comments]] - #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (use-package smart-comment :ensure t :bind ("M-;" . smart-conmment)) - #+END_SRC ** Font Setting @@ -174,7 +173,7 @@ Check out [[http://tapoueh.org/emacs/el-get.html][el-get]]. (if window-system (defvar sd/fixed-font-family (cond ((x-list-fonts "Hasklig") "Hasklig") - ((x-list-fonts "Source Code Pro") "Source Code Pro:weight") + ((x-list-fonts "Source Code Pro") "Source Code Pro:weight") ;; weigth=light ((x-list-fonts "Anonymous Pro") "Anonymous Pro") ((x-list-fonts "M+ 1mn") "M+ 1mn")) "The fixed width font based on what is installed, `nil' if not defined.")) @@ -185,7 +184,7 @@ Setting the fonts alignment issue (if window-system (when sd/fixed-font-family (set-frame-font sd/fixed-font-family) - (set-face-attribute 'default nil :font sd/fixed-font-family :height 130) + (set-face-attribute 'default nil :font sd/fixed-font-family :height 140) (set-face-font 'default sd/fixed-font-family))) #+END_SRC @@ -245,11 +244,21 @@ Fix the font alignment issue when both Chinese and English hybird in org-mode ta #+BEGIN_SRC emacs-lisp :tangle yes :results silent ;; Setup font size based on emacs-font-size-pair - (set-font emacs-english-font emacs-cjk-font '(13 . 16)) + ;; (if window-system + ;; (set-font emacs-english-font emacs-cjk-font '(13 . 16))) + ;; (global-set-key (kbd "s-=") 'increase-emacs-font-size) ;; (global-set-key (kbd "s--") 'decrease-emacs-font-size) + ;; set different fonts (chinese) size for org-mode. + (defun sd/org-buffer-font () + "My font setting for org-mode" + (interactive) + (setq buffer-face-mode-face '(:family "Source Sans Code" :height 160)) + (buffer-face-mode)) + + ;; (add-hook 'org-mode-hook 'sd/org-buffer-font) #+END_SRC ** Color Theme @@ -397,7 +406,8 @@ Enable rainbow mode in emacs lisp mode ** cusor color #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (set-cursor-color 'red) + (if (display-graphic-p) + (set-cursor-color 'red)) #+END_SRC * Mode-line @@ -573,13 +583,15 @@ Fix the issue in mode line when showing triangle set height in mode line #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (set-variable 'powerline-height 14) - (set-variable 'powerline-text-scale-factor (/ (float 100) 140)) - ;; (custom-set-variables - ;; '(powerline-height 14) - ;; '(powerline-text-scale-factor (/ (float 100) 140))) - ;; 100/140;0.8 - (set-face-attribute 'mode-line nil :height 100) + (with-eval-after-load "powerline" + (if window-system + (progn + (let* ((base-font-size (face-attribute 'default :height))) + ;; 100/140;0.8 + (set-variable 'powerline-height (/ base-font-size 10)) + (set-variable 'powerline-text-scale-factor (/ (float 100) base-font-size))) + (set-face-attribute 'mode-line nil :height 100) + (set-face-attribute 'mode-line-inactive nil :height 100)))) #+END_SRC * IDO & SMEX @@ -717,33 +729,35 @@ Always indents header, and hide header leading starts so that no need type =#+ST (setq org-completion-use-ido t) (setq org-startup-with-inline-images t) ;; latex preview - (setq org-startup-with-latex-preview t) - (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.2)) + ;; (setq org-startup-with-latex-preview t) + ;; (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.2)) (require 'org-habit) (add-to-list 'org-modules 'org-habit) - (setq org-habit-graph-column 50)) + (setq org-habit-graph-column 50) + (setq org-hide-emphasis-markers t) + (setq org-html-validation-link nil)) (el-get-bundle hasu/emacs-ob-racket :features ob-racket) - (org-babel-do-load-languages - 'org-babel-load-languages - '((python . t) - (C . t) - (perl . t) - (calc . t) - (latex . t) - (java . t) - (ruby . t) - (lua . t) - (lisp . t) - (scheme . t) - (racket . t) - (sh . t) - (sqlite . t) - (js . t) - (gnuplot . t) - (ditaa . t))) + (org-babel-do-load-languages 'org-babel-load-languages + '((python . t) + (C . t) + (perl . t) + (calc . t) + (latex . t) + (java . t) + (ruby . t) + (lua . t) + (lisp . t) + (scheme . t) + (racket . t) + (sh . t) + (sqlite . t) + (js . t) + (gnuplot . t) + (ditaa . t) + (plantuml . t))) ;; use current window for org source buffer editting (setq org-src-window-setup 'current-window ) @@ -763,6 +777,24 @@ Always indents header, and hide header leading starts so that no need type =#+ST :ensure t) #+END_SRC +*** plantUML +[[http://eschulte.github.io/babel-dev/DONE-integrate-plantuml-support.html][DONE-integrate-plantuml-support]] +#+BEGIN_SRC sh + ## support plantuml + brew install plantuml +#+END_SRC + +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (use-package plantuml-mode + :ensure t) + + (setq org-plantuml-jar-path + (expand-file-name "/usr/local/Cellar/plantuml/8041/plantuml.8041.jar")) + + (set-variable 'plantuml-jar-path + (expand-file-name "/usr/local/Cellar/plantuml/8041/plantuml.8041.jar")) +#+END_SRC + ** Org-bullets use [[https://github.com/sabof/org-bullets][org-bullets]] package to show utf-8 charactes #+BEGIN_SRC emacs-lisp :tangle yes :results silent @@ -776,7 +808,7 @@ use [[https://github.com/sabof/org-bullets][org-bullets]] package to show utf-8 (setq org-bullets-bullet-list '("⦿" "✪" "◉" "○" "►" "◆")) ;; increase font size when enter org-src-mode - (add-hook 'org-src-mode-hook (lambda () (text-scale-increase 2))) + ;; (add-hook 'org-src-mode-hook (lambda () (text-scale-increase 2))) #+END_SRC ** Worf Mode @@ -1070,6 +1102,91 @@ extend org-mode's easy templates, refer to [[http://coldnew.github.io/coldnew-em '("C" "#+BEGIN_SRC c :tangle ?\n\n#+END_SRC")) (add-to-list 'org-structure-template-alist '("m" "\\begin{equation}\n?\n\\end{equation}")) + + (add-to-list 'org-structure-template-alist + '("b" "#+STARTUP: showall + ,#+STARTUP: inlineimages + ,#+OPTIONS: toc:nil\n")) +#+END_SRC + +** Org theme +*** variable-pitch-mode and fixed-pitch-mode +[[https://yoo2080.wordpress.com/2013/05/30/monospace-font-in-tables-and-source-code-blocks-in-org-mode-proportional-font-in-other-parts/][monospace font in tables and source code blocks in org-mode, proportional font in other parts]] +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (set-face-attribute 'variable-pitch nil :font "Calibri" :height 160) + (set-face-attribute 'fixed-pitch nil :font "Source Code Pro" :height (face-attribute 'default :height)) + + (add-hook 'text-mode-hook 'variable-pitch-mode) + + ;; Install Ubuntu Mono fonts and apply it in org-table to align Chinese fonts + (with-eval-after-load "org" + (mapc (lambda (face) + (set-face-attribute face nil :inherit 'fixed-pitch)) + (list 'org-code 'org-block 'org-block-background)) + (set-face-attribute 'org-table nil :family "Ubuntu Mono" :height 140) + + ;; fix indent broken by variable-pitch-mode + ;; http://emacs.stackexchange.com/questions/26864/variable-pitch-face-breaking-indentation-in-org-mode + (require 'org-indent) + (set-face-attribute 'org-indent nil :inherit '(org-hide fixed-pitch))) +#+END_SRC + +Also correct the face of =org-meta-line= in =org-table= +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (with-eval-after-load "org" + (set-face-attribute 'org-meta-line nil :font "Source Code Pro" :height 120 :slant 'italic :inherit 'font-lock-comment-face)) +#+END_SRC + +*** Org-head face +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (with-eval-after-load "org" + (let* ((base-height (face-attribute 'variable-pitch :height)) + (base-font-color (face-foreground 'default nil 'default))) + (set-face-attribute 'org-document-title nil :weight 'bold :height (+ 60 base-height)) + (set-face-attribute 'org-level-1 nil :weight 'bold :height (+ 40 base-height)) + (set-face-attribute 'org-level-2 nil :weight 'bold :height (+ 30 base-height)) + (set-face-attribute 'org-level-3 nil :weight 'bold :height (+ 20 base-height)) + (set-face-attribute 'org-level-4 nil :weight 'bold :height (+ 10 base-height)) + (set-face-attribute 'org-level-5 nil :weight 'bold) + (set-face-attribute 'org-level-6 nil :weight 'bold) + (set-face-attribute 'org-level-7 nil :weight 'bold) + (set-face-attribute 'org-level-8 nil :weight 'bold))) +#+END_SRC + +** Org Blog +Refer to [[http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html][org-publish-html-tutorial]], and [[https://ogbe.net/blog/blogging_with_org.html][blogging_with_org]] +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (require 'ox-publish) + + (setq org-publish-project-alist + `( + ("org-notes" + :base-directory "~/Private/blog/" + :base-extension "org" + :publishing-directory "~/Private/publish_html" + :recursive t + :publishing-function org-html-publish-to-html + :headline-levels 4 + :section-numbers nil + :auto-preamble t + :auto-sitemap t ;Generate sitmap.org automagicaly... + :sitemap-filename "sitemap.org" ;... call it sitemap.org (it's the default )... + :sitemap-title "Sitemap" + + :html-table-of-contents nil + :html-postamble nil ;dont export creator auto validation info in html postamble div + :html-link-home "/" + :html-head "" + :html-head-include-default-style nil + :html-head-include-scripts nil) + ("org-static" + :base-directory "~/Private/blog/" + :base-extension "css\\|js\\|png\\|gif\\|pdf\\|mp3\\|ogg\\|swf" + :publishing-directory "~/Private/publish_html" + :recursive t + :publishing-function org-publish-attachment + :table-of-contents nil) + ("org" :components ("org-notes" "org-static")))) #+END_SRC * Magit @@ -1542,6 +1659,26 @@ as a http download client tool (car (last (split-string url "/" t)))))))))) #+END_SRC +** Elscreen +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (use-package elscreen + :ensure t + :init + (setq elscreen-tab-display-control nil) + :config + (elscreen-start) + (set-face-attribute 'elscreen-tab-current-screen-face nil :foreground "black" :background "yellow") + (set-face-attribute 'elscreen-tab-other-screen-face nil :foreground "black" :background "disabledControlTextColor" :underline nil) + ;; (global-unset-key (kbd)); M-TAB switch screen + (global-set-key (kbd "s-`") '(lambda () (interactive) (elscreen-goto 0))) + (dotimes (i 8) + (global-set-key (kbd (concat "s-" (number-to-string (+ i 1)))) + `(lambda () (interactive) (elscreen-goto ,(+ i 1))))) + (global-set-key (kbd "s-t") 'elscreen-create) + (global-set-key (kbd "s-n") 'elscreen-next) + (global-set-key (kbd "s-p") 'elscreen-previous)) +#+END_SRC + * Dired ** Dired bindings =C-o= is defined as a global key for window operation, here unset it in dired mode @@ -1751,11 +1888,12 @@ here on Mac, just use "open" commands to pen =.pdf=, =.html= and image files (define-key company-active-map (kbd "M-p") nil) (define-key company-active-map (kbd "C-n") #'company-select-next) (define-key company-active-map (kbd "C-p") #'company-select-previous) - ;; should map both (kbd "TAB") and [tab],https://github.com/company-mode/company-mode/issues/75 + ;; should map both (kbd "TAB") and [tab],https://github.com/company-mode/company-mode/issues/75 (define-key company-active-map (kbd "TAB") #'company-complete-selection) (define-key company-active-map [tab] #'company-complete-selection) (global-company-mode) - (setq company-global-modes '(not org-mode))) + ;; magig-commit is text-modeh + (setq company-global-modes '(not org-mode magit-status-mode text-mode eshell-mode))) (use-package company-statistics :ensure t @@ -2688,8 +2826,9 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g= :config (persp-mode) :bind - (:map projectile-mode-map - ("s-t" . projectile-persp-switch-project))) + ;; (:map projectile-mode-map + ;; ("s-t" . projectile-persp-switch-project)) + ) ;; change default-directory of scratch buffer to projectile-project-root (defun sd/project-switch-action () @@ -2716,71 +2855,16 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g= (global-set-key (kbd "") 'toggle-frame-fullscreen) (global-set-key (kbd "s-f") 'projectile-find-file) - (global-set-key (kbd "s-`") 'mode-line-other-buffer) + ;; (global-set-key (kbd "s-`") 'mode-line-other-buffer) - (global-set-key (kbd "s-n") 'persp-next) - (global-set-key (kbd "s-p") 'persp-prev) - (global-set-key (kbd "s-;") 'persp-switch-last) + ;; (global-set-key (kbd "s-n") 'persp-next) + ;; (global-set-key (kbd "s-p") 'persp-prev) + ;; (global-set-key (kbd "s-;") 'persp-switch-last) (global-set-key (kbd "s-=") 'text-scale-increase) (global-set-key (kbd "s--") 'text-scale-decrease) ;; (global-set-key (kbd "s-u") 'undo-tree-visualize) - - - ;; someothers default mapping on super (command) key - ;; s-s save-buffer - ;; s-k kill-this-buffer - - - ;; s-h --> ns-do-hide-emacs - ;; s-j --> ido-switch-buffer + - ;; s-k --> kill-this-buffer - ;; s-l --> goto-line - ;; s-; --> undefined - ;; s-' --> next-multiframe-window - ;; s-ret --> toggle-frame-fullscreen + - - ;; s-y --> ns-paste-secondary - ;; s-u --> revert-buffer - ;; s-i --> undefined - but used for iterm globally - ;; s-o --> used for emacs globally - ;; s-p --> projectile-persp-switch-project + - ;; s-[ --> next-buffer + - ;; s-] --> previous-buffer + - - ;; s-0 --> undefined - ;; s-9 --> undefined - ;; s-8 --> undefined - ;; s-7 --> undefined - ;; s-6 --> undefined - ;; s-- --> center-line - ;; s-= --> undefined - - ;; s-n --> make-frame - ;; s-m --> iconify-frame - ;; s-b --> undefined - ;; s-, --> customize - ;; s-. --> undefined - ;; s-/ --> undefined - - ;; s-g --> isearch-repeat-forward - ;; s-f --> projectile-find-file + - ;; s-d --> isearch-repeat-background - ;; s-s --> save-buffer - ;; s-a --> make-whole-buffer - - ;; s-b --> undefined - ;; s-v --> yank - ;; s-c --> ns-copy-including-secondary - - ;; s-t --> ns-popup-font-panel - ;; s-r --> undefined - ;; s-e --> isearch-yanqk-kill - ;; s-w --> delete-frame - ;; s-q --> same-buffers-kill-emacs - - ;; s-` --> other-frame #+END_SRC ** Windown & Buffer - =C-o= @@ -2851,6 +2935,7 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del ("C-b" ido-switch-buffer nil :exit t) ("C-f" projectile-find-file nil :exit t) ("C-p" persp-switch :exit t) + ("C-t" projectile-persp-switch-project nil :exit t) ;; other special buffers ("d" sd/project-or-dired-jump nil :exit t) @@ -3319,11 +3404,17 @@ Refer [[https://github.com/fnwiya/dotfiles/blob/c9ca79f1b22c919d9f4c3a0f944ba828 (global-set-key (kbd "C-w") 'sd/kill-region-or-backward-kill-word) #+END_SRC - - * TODO todolist -** rucket +** Rucket ** player video on iphone for ** SICP ** music searcher search music on some music web site + + + +** Need separate the Key-bindings and package-initialization + +** Check if emacs is in terminal of graphic mode +Use =display-graphic-p= instead of =window-system= +[[info:elisp#Window%20Systems][Window Systems]]