(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)
: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
#+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
Setting the fonts alignment issue
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (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 120)
- (set-face-font 'default sd/fixed-font-family)))
+ (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 140)
+ (set-face-font 'default sd/fixed-font-family)))
#+END_SRC
*** Chinese fonts
#+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
** 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
'("%e"
(:eval
(let* ((active (powerline-selected-window-active))
- (mode-line-buffer-id (if active 'sd/mode-line-buffer-id 'mode-line-buffer-id-inactive))
+ ;; (mode-line-buffer-id (if active 'sd/mode-line-buffer-id 'mode-line-buffer-id-inactive))
+ (mode-line-buffer-id (if active 'sd/mode-line-buffer-id 'powerline-inactive1))
(mode-line (if active 'mode-line 'mode-line-inactive))
(my-face1 (if active 'sd/powerline-active1 'powerline-inactive1))
(my-face-buffer-modified (if (and (sd/buffer-is-eshel-or-scratch) (buffer-modified-p) (not buffer-read-only))
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)
+ (defconst sd/mode-line-font-heigh 100
+ "Defaulet the fontsize on mode line.")
+
+ (with-eval-after-load "powerline"
+ (when (display-graphic-p)
+ (set-face-attribute 'mode-line-inactive nil :height sd/mode-line-font-heigh)
+ (set-face-attribute 'mode-line nil :height sd/mode-line-font-heigh)
+ (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 sd/mode-line-font-heigh) base-font-size)))))
#+END_SRC
* IDO & SMEX
;; (set-face-attribute 'ivy-current-match nil :background "Orange" :foreground "black")
(define-key read-expression-map (kbd "C-r") 'counsel-expression-history)
(global-set-key (kbd "C-c C-r") 'ivy-resume))
-
-
-
- ;; (global-set-key "\C-s" 'swiper)
- ;; (global-set-key (kbd "<f6>") 'ivy-resume)
- ;; ;; (global-set-key (kbd "C-x C-f") 'counsel-find-file)
- ;; (global-set-key (kbd "<f1> l") 'counsel-load-library)
- ;; (global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
- ;; (global-set-key (kbd "<f2> u") 'counsel-unicode-char)
- ;; (global-set-key (kbd "C-c g") 'counsel-git)
- ;; (global-set-key (kbd "C-c j") 'counsel-git-grep)
- ;; (global-set-key (kbd "C-c k") 'counsel-ag)
- ;; (global-set-key (kbd "C-x l") 'counsel-locate)
- ;; (global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
-
- ;; (set-face-attribute
- ;; 'ivy-current-match nil
- ;; :background "Orange"
- ;; :foreground "black")
-
- ;; ivy-resume
- ;; (define-key swiper-map (kbd "M-%") 'swiper-aa-replace)
#+END_SRC
** helm
(require 'org-habit)
(add-to-list 'org-modules 'org-habit)
(setq org-habit-graph-column 50)
- (setq org-hide-emphasis-markers t))
+ (setq org-hide-emphasis-markers t)
+ (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)
(latex . t)
(java . t)
(ruby . t)
- (lua . t)
+ ; (lua . t)
(lisp . t)
(scheme . t)
(racket . t)
(sqlite . t)
(js . t)
(gnuplot . t)
- (ditaa . t)))
+ (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
+ ;; 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
+ ## 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
(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)))
+
+ ;; 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
(use-package worf
:ensure t
:commands worf-mode
- :init (add-hook 'org-mode-hook 'worf-mode))
+ :init
+ (require 'ivy)
+ (add-hook 'org-mode-hook 'worf-mode))
#+END_SRC
** Get Things Done
** 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
'("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
*** 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 140)
- (set-face-attribute 'fixed-pitch nil :font "Source Code Pro" :height 120)
+ (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)
(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
#+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 "<link rel='stylesheet' href='./css/worg.css' />"
+ :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
[[https://github.com/magit/magit][Magit]] is a very cool git interface on Emacs.
(add-hook 'help-mode-hook 'sd/help-mode-hook)
#+END_SRC
+Wiki [[http://stackoverflow.com/questions/3480173/show-keys-in-emacs-keymap-value][show-keys-in-emacs-keymap-value]], Helpplus mode can show keymap as human-readable, use ~describe-keymap~ or =C-h M-k=
+
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (el-get-bundle help-macro+
+ :url "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/master/help-macro+.el"
+ :features help-macro+)
+ (el-get-bundle help+
+ :url "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/master/help+.el"
+ :features help+)
+ (el-get-bundle help-fns+
+ :url "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/master/help-fns+.el"
+ :features help-fns+)
+ (el-get-bundle help-mode+
+ :url "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/master/help-mode+.el"
+ :features help-mode+)
+#+END_SRC
+
** goto-last-change
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package goto-last-change
(car (last (split-string url "/" t))))))))))
#+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
+ ;; :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
#+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)
(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))))
(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
:config
(define-key company-active-map (kbd "M-n") nil)
(define-key company-active-map (kbd "M-p") nil)
+ (define-key company-active-map (kbd "SPC") #'sd/company-stop-input-space)
(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
(define-key company-active-map [tab] #'company-complete-selection)
(global-company-mode)
;; magig-commit is text-modeh
- (setq company-global-modes '(not org-mode magit-status-mode text-mode)))
+ (setq company-global-modes '(not org-mode magit-status-mode text-mode eshell-mode gfm-mode markdown-mode)))
(use-package company-statistics
:ensure t
:config
(company-statistics-mode))
+
+ (defun sd/company-stop-input-space ()
+ "Stop completing and input a space,a workaround of a semantic issue `https://github.com/company-mode/company-mode/issues/614'"
+ (interactive)
+ (company-abort)
+ (insert " "))
#+END_SRC
** YASnippet
(use-package lispy
:ensure t
:init
- (eval-after-load "lispy"
- `(progn
- (define-key lispy-mode-map (kbd "M-o") nil)))
+ (with-eval-after-load "lispy"
+ (define-key lispy-mode-map (kbd "M-o") nil)
+ (define-key lispy-mode-map (kbd "g") 'special-lispy-goto-local)
+ (define-key lispy-mode-map (kbd "G") 'special-lispy-goto)
+ (define-key lispy-mode-map (kbd "M-m") 'back-to-indentation))
:config
(add-hook 'emacs-lisp-mode-hook (lambda () (lispy-mode 1))))
+
+
#+END_SRC
** Perl
("\\.md\\'" . markdown-mode)
("\\.markdown\\'" . markdown-mode))
:init (setq markdown-command "multimarkdown"))
+
+ (add-hook 'gfm-mode-hook (lambda ()
+ (set-face-attribute 'markdown-inline-code-face nil :inherit 'fixed-pitch)
+ (set-face-attribute 'markdown-pre-face nil :inherit 'fixed-pitch)))
+ (with-eval-after-load "gfm-mode"
+ (set-face-attribute 'markdown-inline-code-face nil :inherit 'fixed-pitch)
+ (set-face-attribute 'markdown-pre-face nil :inherit 'fixed-pitch))
#+END_SRC
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(add-to-list 'projectile-globally-ignored-files "GTAGS")
(projectile-global-mode t))
- (use-package persp-projectile
- :ensure t
- :config
- (persp-mode)
- :bind
- (:map projectile-mode-map
- ("s-t" . projectile-persp-switch-project)))
+ ;; (use-package persp-projectile
+ ;; :ensure t
+ ;; :config
+ ;; (persp-mode)
+ ;; :bind
+ ;; ;; (: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 ()
(global-set-key (kbd "<s-return>") '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=
(delete-other-windows)))
(defhydra sd/hydra-window (:color red :columns nil)
- "Window"
+ "C-o"
;; windows switch
("h" windmove-left nil :exit t)
("j" windmove-down nil :exit t)
(interactive)
(split-window-right)
(windmove-right))
- "vert" :exit t)
+ nil :exit t)
("x" (lambda ()
(interactive)
(split-window-below)
(windmove-down))
- "horz" :exit t)
+ nil :exit t)
;; buffer / windows switch
- ("o" sd/toggle-max-windows "one" :exit t)
- ("C-k" sd/delete-current-window "del" :exit t)
+ ("o" sd/toggle-max-windows nil :exit t)
+ ("C-k" sd/delete-current-window nil :exit t)
("C-d" (lambda ()
(interactive)
(kill-buffer)
(sd/delete-current-window))
- "kill" :exit t)
+ nil :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)
+ ("s" ace-swap-window nil)
+ ("D" ace-delete-window nil :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")
+ ("u" (progn (winner-undo) (setq this-command 'winner-undo)) nil)
+ ("r" (progn (winner-redo) (setq this-command 'winner-redo)) nil)
;; ibuffer, dired, eshell, bookmarks
;; ("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)
+ ("C-r" ivy-recentf nil :exit t)
+ ;; ("C-p" persp-switch nil :exit t)
+ ;; ("C-t" projectile-persp-switch-project nil :exit t)
;; other special buffers
("d" sd/project-or-dired-jump nil :exit t)
;; ("p" paradox-list-packages nil :exit t)
;; quit
- ("q" nil "cancel")
- ("<ESC>" nil)
+ ("q" nil nil)
+ ("<ESC>" nil nil)
("C-h" windmove-left nil :exit t)
("C-j" windmove-down nil :exit t)
- ("C-k" windmove-up :exit t)
+ ("C-k" windmove-up nil :exit t)
("C-l" windmove-right nil :exit t)
("C-;" nil nil :exit t)
("n" nil nil :exit t)
("[" nil nil :exit t)
("]" nil nil :exit t)
- ("f" nil))
+ ("f" nil nil))
(global-unset-key (kbd "C-o"))
(global-set-key (kbd "C-o") 'sd/hydra-window/body)
(global-set-key (kbd "C-w") 'sd/kill-region-or-backward-kill-word)
#+END_SRC
+* Developing
+** perspeen
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (el-get-bundle seudut/perspeen
+ :features perspeen
+ (setq perspeen-use-tab t)
+ (perspeen-mode))
+
+ ;; super-i to switch to ith workspace
+ (defmacro sd/define-keys (map key func &rest args)
+ "A macro to define multi keys "
+ `(define-key ,map ,key (lambda () (interactive) (,func ,@args))))
+
+
+ (with-eval-after-load "perspeen"
+ (dotimes (ii 9)
+ (sd/define-keys perspeen-mode-map (kbd (concat "s-" (number-to-string (+ ii 1))))
+ perspeen-goto-ws (+ ii 1)))
+ (define-key perspeen-mode-map (kbd "s-c") 'perspeen-create-ws)
+ (define-key perspeen-mode-map (kbd "s-n") 'perspeen-next-ws)
+ (define-key perspeen-mode-map (kbd "s-p") 'perspeen-previous-ws)
+ (define-key perspeen-mode-map (kbd "s-'") 'perspeen-last-ws)
+ (define-key perspeen-mode-map (kbd "s-t") 'perspeen-tab-create-tab)
+ (define-key perspeen-mode-map (kbd "s-t") 'perspeen-tab-create-tab))
+#+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
+* 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=
+** List operation
+*** add a element to list
+- ~add-to-list~ functions, append
+- ~push~ macro
+- ~(setcdr (last aa) (list element))~
+blog with modify list
+
+draw one line top of the windows