emacs - tidy up the code
[dotfiles.git] / emacs.d / config.org
index 126f90c..2322cf8 100644 (file)
@@ -574,15 +574,17 @@ Fix the issue in mode line when showing triangle
 
 set height in mode line
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (defconst sd/mode-line-font-heigh 100
+    "Defaulet the fontsize on mode line.")
+
   (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))))
+    (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
@@ -673,28 +675,6 @@ Use [[https://github.com/DarwinAwardWinner/ido-ubiquitous][ido-ubiquitous]] for
     ;; (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
@@ -840,7 +820,9 @@ cause we cannot input =[= and =]=, so here I unset this mappings. And redifined
   (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
@@ -1645,6 +1627,23 @@ When see function by =C-h f=, and visit the source code, I would like the buffer
   (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
@@ -1711,17 +1710,18 @@ Fix one elscreen issue when startup emacs https://github.com/knu/elscreen/issues
     :init
     (setq elscreen-tab-display-control nil)
     :config
-    (elscreen-start)
+    ;; (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))
+    ;; (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
@@ -1960,6 +1960,7 @@ here on Mac, just use "open" commands to pen =.pdf=,  =.html= and image files
     :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
@@ -1967,12 +1968,18 @@ here on Mac, just use "open" commands to pen =.pdf=,  =.html= and image files
     (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 eshell-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
@@ -2110,11 +2117,15 @@ bindings in =lispy-mode-map= after loaded. see [[http://stackoverflow.com/questi
   (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
@@ -3008,6 +3019,7 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del
     ;; ("C-i" other-window nil :exit t)
     ("C-b" ido-switch-buffer nil :exit t)
     ("C-f" projectile-find-file nil :exit t)
+    ("C-r" ivy-recentf nil :exit t)
     ("C-p" persp-switch :exit t)
     ("C-t" projectile-persp-switch-project nil :exit t)
 
@@ -3477,7 +3489,25 @@ Refer [[https://github.com/fnwiya/dotfiles/blob/c9ca79f1b22c919d9f4c3a0f944ba828
 
   (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
+    ;; (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))))
+#+END_SRC
 * TODO todolist
 ** Rucket
 ** player video on iphone for