X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=126f90c684b38489dff3307bdd0d5be63b4309bb;hb=98f94ddef05fa07db4e8e118def29c324f8d2dec;hp=9c47a64b63756b8e2112f956d2abc04eecee56c4;hpb=8483e942bbf080a0f9e266db1bc927502c23d21b;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index 9c47a64..126f90c 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -38,7 +38,7 @@ Set system PATH and emacs exec path (menu-bar-mode 1) (menu-bar-mode 0)) - ;; (setq debug-on-error t) + (setq debug-on-error t) (setq inhibit-startup-message t) (defalias 'yes-or-no-p 'y-or-n-p) @@ -133,17 +133,6 @@ Check out [[http://tapoueh.org/emacs/el-get.html][el-get]]. :ensure t) #+END_SRC -* Mac Specific -#+BEGIN_SRC emacs-lisp :tangle yes :results silent - ;; (defconst *is-a-mac* (eq system-type 'darwin)) - ;; (setq mouse-wheel-scroll-amount '(1 - ;; ((shift) . 5) - ;; ((control)))) - - - ;; (setq-default indicate-empty-lines t) -#+END_SRC - * Color and Fonts Settings ** highlight current line #+BEGIN_SRC emacs-lisp :tangle yes :results silent @@ -267,6 +256,8 @@ Loading theme should be after all required loaded, refere [[https://github.com/j #+BEGIN_SRC emacs-lisp :tangle yes :results silent (setq vc-follow-symlinks t) + (use-package molokai-theme + :ensure t) (use-package color-theme :ensure t @@ -406,7 +397,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 @@ -734,11 +726,38 @@ Always indents header, and hide header leading starts so that no need type =#+ST (add-to-list 'org-modules 'org-habit) (setq org-habit-graph-column 50) (setq org-hide-emphasis-markers t) - (setq org-html-validation-link nil)) + (setq org-html-validation-link nil) + ;; open link when return clicked + (setq org-return-follows-link t) + ;; open the ppt file by external open instead of emacs + (add-to-list 'org-file-apps '("\\.pptx" . "open %s")) + (add-to-list 'org-file-apps '("\\.doc" . "open %s")) + (setq org-image-actual-width nil)) +#+END_SRC + +** Org babel +#+BEGIN_SRC emacs-lisp :tangle yes :results silent (el-get-bundle hasu/emacs-ob-racket :features ob-racket) + ;; Lua support + ;(use-package ob-lua + ; :ensure t) + + ;; use current window for org source buffer editting + + (setq org-src-window-setup 'current-window ) + (define-key org-mode-map (kbd "C-'") nil) + ;; C-M-i is mapped to imenu globally + (define-key org-mode-map (kbd "C-M-i") nil) + ;; set the ditta.jar path + + (setq org-ditaa-jar-path "/usr/local/Cellar/ditaa/0.9/libexec/ditaa0_9.jar") + (unless + (file-exists-p org-ditaa-jar-path) + (error "seudut: ditaa.jar not found at %s " org-ditaa-jar-path)) + (org-babel-do-load-languages 'org-babel-load-languages '((python . t) (C . t) @@ -747,7 +766,7 @@ Always indents header, and hide header leading starts so that no need type =#+ST (latex . t) (java . t) (ruby . t) - (lua . t) + ; (lua . t) (lisp . t) (scheme . t) (racket . t) @@ -758,24 +777,19 @@ Always indents header, and hide header leading starts so that no need type =#+ST (ditaa . t) (plantuml . t))) - ;; use current window for org source buffer editting - (setq org-src-window-setup 'current-window ) - (define-key org-mode-map (kbd "C-'") nil) - ;; C-M-i is mapped to imenu globally - (define-key org-mode-map (kbd "C-M-i") nil) + ;; toggle image preview + (add-hook 'org-babel-after-execute-hook 'sd/display-inline-images 'append) - ;; set the ditta.jar path - (setq org-ditaa-jar-path "/usr/local/Cellar/ditaa/0.9/libexec/ditaa0_9.jar") - (unless - (file-exists-p org-ditaa-jar-path) - (error "seudut: ditaa.jar not found at %s " org-ditaa-jar-path)) + (defun sd/display-inline-images () + (condition-case nil + (org-display-inline-images) + (error nil))) - ;; Lua support - (use-package ob-lua - :ensure t) + ;; ditaa artist mode + (with-eval-after-load "artist" + (define-key artist-mode-map [down-mouse-3] 'artist-mouse-choose-operation)) #+END_SRC - *** plantUML [[http://eschulte.github.io/babel-dev/DONE-integrate-plantuml-support.html][DONE-integrate-plantuml-support]] #+BEGIN_SRC sh @@ -808,6 +822,13 @@ use [[https://github.com/sabof/org-bullets][org-bullets]] package to show utf-8 ;; increase font size when enter org-src-mode ;; (add-hook 'org-src-mode-hook (lambda () (text-scale-increase 2))) + + ;; define a face for org-bullets + (defface org-bullet-face + '((t (:foreground "green yellow"))) + "Face used for the org-bullets.") + (setq org-bullets-face-name (quote org-bullet-face)) + (set-face-attribute 'org-bullet-face t :foreground "burlywood" :weight 'normal :height 1.6) #+END_SRC ** Worf Mode @@ -1085,6 +1106,21 @@ Color higlight the source code block in exported html, [[http://stackoverflow.co ** Org structure template extend org-mode's easy templates, refer to [[http://coldnew.github.io/coldnew-emacs/#orgheadline94][Extend org-modes' esay templates]] #+BEGIN_SRC emacs-lisp :tangle yes :results silent + ;; ‘s’ ‘#+BEGIN_SRC ... #+END_SRC’ + ;; ‘e’ ‘#+BEGIN_EXAMPLE ... #+END_EXAMPLE’ + ;; ‘q’ ‘#+BEGIN_QUOTE ... #+END_QUOTE’ + ;; ‘v’ ‘#+BEGIN_VERSE ... #+END_VERSE’ + ;; ‘c’ ‘#+BEGIN_CENTER ... #+END_CENTER’ + ;; ‘l’ ‘#+BEGIN_LaTeX ... #+END_LaTeX’ + ;; ‘L’ ‘#+LaTeX:’ + ;; ‘h’ ‘#+BEGIN_HTML ... #+END_HTML’ + ;; ‘H’ ‘#+HTML:’ + ;; ‘a’ ‘#+BEGIN_ASCII ... #+END_ASCII’ + ;; ‘A’ ‘#+ASCII:’ + ;; ‘i’ ‘#+INDEX:’ line + ;; ‘I’ ‘#+INCLUDE:’ line + + (add-to-list 'org-structure-template-alist '("E" "#+BEGIN_SRC emacs-lisp :tangle yes :results silent\n?\n#+END_SRC")) (add-to-list 'org-structure-template-alist @@ -1101,11 +1137,15 @@ 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")) + (add-to-list 'org-structure-template-alist + '("d" "#+BEGIN_SRC ditaa :file ? :cmdline -r -s 0.8 :cache yes \n\n#+END_SRC")) + (add-to-list 'org-structure-template-alist + '("u" "#+BEGIN_SRC plantuml :file ? \n\n#+END_SRC")) + #+END_SRC ** Org theme @@ -1123,6 +1163,11 @@ extend org-mode's easy templates, refer to [[http://coldnew.github.io/coldnew-em (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) + ;; org-special-keyword inherited from font-lock-keywork originally; as org is changed to variable-pitch, it cause + ;; the font in special-keywords are not monospace + (set-face-attribute 'org-special-keyword nil :inherit '(font-lock-keyword-face fixed-pitch)) + ;; same as above + (set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch)) ;; fix indent broken by variable-pitch-mode ;; http://emacs.stackexchange.com/questions/26864/variable-pitch-face-breaking-indentation-in-org-mode @@ -1659,6 +1704,7 @@ as a http download client tool #+END_SRC ** Elscreen +Fix one elscreen issue when startup emacs https://github.com/knu/elscreen/issues/6 #+BEGIN_SRC emacs-lisp :tangle yes :results silent (use-package elscreen :ensure t @@ -1748,11 +1794,24 @@ as a http download client tool #+END_SRC #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (defun sd/dired-new-file () + (defun sd/dired-new-file-and-open () "Create a new file in dired mode" (interactive) (call-interactively 'find-file)) + (defun sd/dired-new-file (file) + "Create a new file called FILE. + If FILE already exists, signal an error." + (interactive + (list (read-file-name "Create file: " (dired-current-directory)))) + (let* ((expanded (expand-file-name file))) + (if (file-exists-p expanded) + (error "Cannot create file %s: file exists" expanded)) + (write-region "" nil expanded t) + (when expanded + (dired-add-file expanded) + (dired-move-to-filename)))) + ;; copied from abo-abo's config (defun sd/dired-get-size () (interactive) @@ -1773,7 +1832,8 @@ from [[https://emacs.stackexchange.com/questions/13713/how-to-disable-ido-in-dir (defun mk-anti-ido-advice (func &rest args) "Temporarily disable IDO and call function FUNC with arguments ARGS." (interactive) - (let ((read-file-name-function #'read-file-name-default)) + (let ((read-file-name-function #'read-file-name-default) + (completing-read-function #'completing-read-default)) (if (called-interactively-p 'any) (call-interactively func) (apply func args)))) @@ -1781,14 +1841,29 @@ from [[https://emacs.stackexchange.com/questions/13713/how-to-disable-ido-in-dir (defun mk-disable-ido (command) "Disable IDO when command COMMAND is called." (advice-add command :around #'mk-anti-ido-advice)) + + (defun mk-anti-ido-no-completing-advice (func &rest args) + "Temporarily disable IDO and call function FUNC with arguments ARGS." + (interactive) + (let ((read-file-name-function #'read-file-name-default) + ;; (completing-read-function #'completing-read-default) + ) + (if (called-interactively-p 'any) + (call-interactively func) + (apply func args)))) + + (defun mk-disable-ido-no-completing (command) + "Disable IDO when command COMMAND is called." + (advice-add command :around #'mk-anti-ido-no-completing-advice)) #+END_SRC Disalble =ido= when new a directory or file in =dired= mode #+BEGIN_SRC emacs-lisp :tangle yes :results silent ;; call the function which you want to disable ido (mk-disable-ido 'dired-create-directory) + (mk-disable-ido 'sd/dired-new-file-and-open) (mk-disable-ido 'sd/dired-new-file) - (mk-disable-ido 'dired-goto-file) + (mk-disable-ido-no-completing 'dired-goto-file) #+END_SRC ** Dired open with @@ -3413,3 +3488,8 @@ search music on some music web site ** Need separate the Key-bindings and package-initialization +* Note +** Check if emacs is in terminal of graphic mode +Use =display-graphic-p= instead of =window-system= +[[info:elisp#Window%20Systems][Window Systems]] +** =Interactive=