* Basic Settings
** Setting loading Path
-
Set system PATH and emacs exec path
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(setenv "PATH" (concat (getenv "PATH")
":" "/usr/local/bin"
":" "/Library/TeX/texbin"))
(setq exec-path (append exec-path '("/usr/local/bin")))
(setq exec-path (append exec-path '("/Library/TeX/texbin/")))
-
#+END_SRC
Set the emacs load path
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
;; (add-to-list 'load-path "~/.emacs.d/elisp")
#+END_SRC
** Package Initialization
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(require 'package)
(setq package-archives '(("mepla" . "http://melpa.milkbox.net/packages/")
("org" . "http://orgmode.org/elpa/")))
(package-initialize)
-
#+END_SRC
** General Setting
(setq auto-save-list-file-prefix (concat sd-temp-directory "auto-save-list/.saves-"))
#+END_SRC
-* Package Management Tools
+*** Max file size
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (setq large-file-warning-threshold nil)
+#+END_SRC
+* Package Management Tools
** Use-package
Using [[https://github.com/jwiegley/use-package][use-package]] to manage emacs packages
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
#+END_SRC
* Mode-line
-
** clean mode line
clean mode line, Refer to [[https://www.masteringemacs.org/article/hiding-replacing-modeline-strings][Marstering Emacs]], some greek character see [[http://xahlee.info/math/math_unicode_greek.html][math_unicode_greek]]
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package ido-exit-target
:ensure t
:init
- (mapcar (lambda (map)
- (define-key map (kbd "C-j") #'ido-exit-target-split-window-right)
+ (mapcar '(lambda (map)
+ (define-key map (kbd "C-j") #'ido-exit-target-other-window)
(define-key map (kbd "C-k") #'ido-exit-target-split-window-below))
(list ido-buffer-completion-map
;; ido-common-completion-map
#+END_SRC
* Org-mode Settings
-
** Org-mode Basic setting
-
Always indents header, and hide header leading starts so that no need type =#+STATUP: indent=
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package org
:ensure t
(setq org-src-tab-acts-natively t)
(setq org-confirm-babel-evaluate nil)
(setq org-use-speed-commands t)
- (setq org-completion-use-ido t))
+ (setq org-completion-use-ido t)
+ (setq org-startup-with-inline-images t))
(org-babel-do-load-languages
'org-babel-load-languages
(latex . t)
(java . t)
(ruby . t)
+ (lua . t)
(lisp . t)
(scheme . t)
(sh . t)
(unless
(file-exists-p org-ditaa-jar-path)
(error "seudut: ditaa.jar not found at %s " org-ditaa-jar-path))
+
+ ;; Lua support
+ (use-package ob-lua
+ :ensure t)
#+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
(use-package org-bullets
:ensure t
#+END_SRC
** Worf Mode
-
[[https://github.com/abo-abo/worf][worf]] mode is an extension of vi-like binding for org-mode.
In =worf-mode=, it is mapping =[=, =]= as =worf-backward= and =worf-forward= in global, wich
cause we cannot input =[= and =]=, so here I unset this mappings. And redifined this two to
=M-[= and =M-]=. see this [[https://github.com/abo-abo/worf/issues/19#issuecomment-223756599][issue]]
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(use-package worf
:ensure t
:commands worf-mode
- :init (add-hook 'org-mode-hook 'worf-mode)
- ;; :config
- ;; (define-key worf-mode-map "[" nil)
- ;; (define-key worf-mode-map "]" nil)
- ;; (define-key worf-mode-map (kbd "M-[") 'worf-backward)
- ;; (define-key worf-mode-map (kbd "M-]") 'worf-forward)
- )
-
+ :init (add-hook 'org-mode-hook 'worf-mode))
#+END_SRC
** Get Things Done
-
Refer to [[http://doc.norang.ca/org-mode.html][Organize Your Life in Plain Text]]
*** basic setup
-
standard key binding
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
#+END_SRC
*** Plain List
-
Replace the list bullet =-=, =+=, with =•=, a litter change based [[https://github.com/howardabrams/dot-files/blob/master/emacs-org.org][here]]
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
;; (use-package org-mode
;; :init
#+END_SRC
*** Todo Keywords
-
refer to [[http://coldnew.github.io/coldnew-emacs/#orgheadline94][fancy todo states]],
-
To track TODO state changes, the =!= is to insert a timetamp, =@= is to insert a note with
timestamp for the state change.
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
;; (setq org-todo-keywords
;; '((sequence "☛ TODO(t)" "|" "✔ DONE(d)")
#+END_SRC
-** others
-
+** 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
-
- (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
- '("S" "#+BEGIN_SRC sh\n?\n#+END_SRC"))
- (add-to-list 'org-structure-template-alist
- '("p" "#+BEGIN_SRC plantuml :file uml.png \n?\n#+END_SRC"))
-
+ (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
+ '("S" "#+BEGIN_SRC sh :results output replace\n?\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("p" "#+BEGIN_SRC plantuml :file uml.png \n?\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("P" "#+BEGIN_SRC perl \n?\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("f" "#+BEGIN_SRC fundamental :tangle ?\n\n#+END_SRC"))
#+END_SRC
* Magit
(exec-path-from-shell-initialize))
#+END_SRC
-** TODO smart display
* Misc Settings
-
** [[https://github.com/abo-abo/hydra][Hydra]]
*** hydra install
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
#+END_SRC
** Multi-term
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(use-package multi-term
:ensure t)
-
#+END_SRC
** ace-link
-
[[https://github.com/abo-abo/ace-link][ace-link]] is a package written by [[https://github.com/abo-abo][Oleh Krehel]]. It is convenient to jump to link in help mode, info-mode, etc
Type =o= to go to the link
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(use-package ace-link
:ensure t
:init
(ace-link-setup-default))
-
#+END_SRC
** Smart Parens
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(use-package smartparens
:ensure t
:config
(progn
(require 'smartparens-config)
(add-hook 'prog-mode-hook 'smartparens-mode)))
-
#+END_SRC
** Ace-Windows
-
[[https://github.com/abo-abo/ace-window][ace-window]]
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(use-package ace-window
:ensure t
:defer t
- ; :init
- ; (global-set-key (kbd "M-o") 'ace-window)
+ ; :init
+ ; (global-set-key (kbd "M-o") 'ace-window)
:config
(setq aw-keys '(?a ?s ?d ?f ?j ?k ?l)))
-
#+END_SRC
** Which key
-
[[https://github.com/justbur/emacs-which-key][which-key]] show the key bindings
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
(use-package which-key
:ensure t
:config
(which-key-mode))
-
#+END_SRC
** View only for some directory
(require 'info+))
#+END_SRC
-** TODO bookmark
-
-** TODO Calendar
** advice info
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(defun sd/info-mode ()
(sd/delete-current-window))
#+END_SRC
-** TODO Man mode
-Color for Man-mode
-
** Demo It
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
;; (el-get-bundle howardabrams/demo-it)
(add-hook 'help-mode-hook 'sd/help-mode-hook)
#+END_SRC
+** goto-last-change
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package goto-last-change
+ :ensure t)
+#+END_SRC
+
+** Ag
+install =ag=, =the-silver-searcher= by homebrew on mac
+#+BEGIN_SRC sh
+brew install the-silver-searcher
+#+END_SRC
+
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package ag
+ :ensure t)
+#+END_SRC
+
* Dired
** Dired bindings
=C-o= is defined as a global key for window operation, here unset it in dired mode
(interactive)
(dired-why)
(message
- "Δ: d-delete, u-ndelete, x-punge, f-ind, o-ther window, R-ename, C-opy, c-create, +new dir, r-evert, /-filter, h-summary, ?-help"))
+ "Δ: d-delete, u-ndelete, x-punge, f-ind, o-ther window, R-ename, C-opy, c-create, +new dir, r-evert, /-filter, v-iew, l-ist, z-Size, h-summary, ?-help"))
(defun sd/dired-high-level-dir ()
"Go to higher level directory"
(add-hook 'c-mode-hook 'google-set-c-style))
#+END_SRC
+** Lua
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package lua-mode
+ :ensure t)
+#+END_SRC
+
* Compile
Set the environments vairables in compilation mode
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
#+END_SRC
* Gnu Plot
+Install =gnuplot= on Mac
+#+BEGIN_SRC sh
+ brew install gnuplot --with-qt
+#+END_SRC
+
To fix some issue that =toolbar-make-button-list= is void, see the [[https://github.com/bruceravel/gnuplot-mode/issues/31][issue]], here I set some variable as =nil=
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package gnuplot
(defhydra sd/hydra-window (:color red :columns nil)
"Window"
- ;; windows split
+ ;; windows switch
("h" windmove-left nil :exit t)
("j" windmove-down nil :exit t)
("k" windmove-up nil :exit t)
("l" windmove-right nil :exit t)
+ ("C-o" other-window nil :exit t)
+ ;; window resize
("H" hydra-move-splitter-left nil)
("J" hydra-move-splitter-down nil)
("K" hydra-move-splitter-up nil)
("L" hydra-move-splitter-right nil)
+ ;; windows split
("v" (lambda ()
(interactive)
(split-window-right)
(split-window-below)
(windmove-down))
"horz" :exit t)
-
;; buffer / windows switch
("o" sd/toggle-max-windows "one" :exit t)
("C-k" sd/delete-current-window "del" :exit t)
- ("D" (lambda ()
+ ("C-d" (lambda ()
(interactive)
(kill-buffer)
(sd/delete-current-window))
"kill" :exit t)
- ("'" other-window "other" :exit t)
+
+ ;; ace-window
+ ;; ("'" other-window "other" :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)
-
+ ;; Windows undo - redo
("u" (progn (winner-undo) (setq this-command 'winner-undo)) "undo")
("r" (progn (winner-redo) (setq this-command 'winner-redo)) "redo")
-
+
;; ibuffer, dired, eshell, bookmarks
- ;; ("d" ace-delete-window "ace-one" :exit t)
- ("C-o" ido-switch-buffer nil :exit t)
+ ;; ("C-i" other-window nil :exit t)
+ ("C-b" ido-switch-buffer nil :exit t)
+ ("C-f" projectile-find-file nil :exit t)
+ ("C-p" persp-switch :exit t)
+
+ ;; other special buffers
("d" sd/project-or-dired-jump nil :exit t)
("b" ibuffer nil :exit t)
("e" sd/toggle-project-eshell nil :exit t)
("m" bookmark-jump-other-window nil :exit t)
("M" bookmark-set nil :exit t)
("g" magit-status nil :exit t)
- ("p" paradox-list-packages nil :exit t)
+ ;; ("p" paradox-list-packages nil :exit t)
;; quit
("q" nil "cancel")
- vision
- mission
-* TODO jump last change point
-
* TODO todolist
** rucket
** player video on iphone for
** SICP
+** music searcher
+search music on some music web site