X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=e3b330468dfd9e342c0753d094fdb1c0b106c289;hb=4cd58f1393b142122c1f458667f627d23a576782;hp=3f4438d5ae4a7e8f487f8e61cc8f2c28054dc121;hpb=67a12b5f03b8c5e0465cbb94038a113d3a0d6efd;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index 3f4438d..e3b3304 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -413,6 +413,15 @@ Revised powerline-center-theme (replace-regexp-in-string "Git[:-]" "" s) s)) + (defface sd/powerline-active1 '((t (:background "yellow" :foreground "red" :inherit mode-line))) + "My Powerline face 1 based on powerline-active1." + :group 'powerline) + + (defface sd/mode-line-buffer-id + '((t (:background "yellow" :foreground "black" :inherit mode-line-buffer-id))) + "Powerline mode-line face" + :group 'powerline) + (defun sd/powerline-center-theme_revised () "Setup a mode-line with major and minor modes centered." (interactive) @@ -420,8 +429,9 @@ Revised powerline-center-theme '("%e" (:eval (let* ((active (powerline-selected-window-active)) - (mode-line-buffer-id (if active '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 (if active 'mode-line 'mode-line-inactive)) + (my-face1 (if active 'sd/powerline-active1 'powerline-inactive1)) (face1 (if active 'powerline-active1 'powerline-inactive1)) (face2 (if active 'powerline-active2 'powerline-inactive2)) (separator-left (intern (format "powerline-%s-%s" @@ -430,23 +440,22 @@ Revised powerline-center-theme (separator-right (intern (format "powerline-%s-%s" (powerline-current-separator) (cdr powerline-default-separator-dir)))) - (lhs (list (powerline-raw "%*" mode-line 'l) + (lhs (list (powerline-raw "%*" my-face1 'l) ;; (powerline-buffer-size mode-line 'l) (powerline-buffer-id mode-line-buffer-id 'l) - (powerline-raw " ") - (funcall separator-left mode-line face1) + (powerline-raw " " my-face1) + (funcall separator-left my-face1 face1) (powerline-narrow face1 'l) ;; (powerline-vc face1) - (sd/powerline-simpler-vc (powerline-vc face1)) - )) + (sd/powerline-simpler-vc (powerline-vc face1)))) (rhs (list (powerline-raw global-mode-string face1 'r) (powerline-raw "%4l" face1 'r) - (powerline-raw ":" face1) + (powerline-raw ":" face1) (powerline-raw "%3c" face1 'r) - (funcall separator-right face1 mode-line) - (powerline-raw " ") - (powerline-raw "%6p" mode-line 'r) - (powerline-hud face2 face1))) + (funcall separator-right face1 my-face1) + (powerline-raw " " my-face1) + (powerline-raw "%6p" my-face1 'r) + (powerline-hud my-face1 face1 ))) (center (list (powerline-raw " " face1) (funcall separator-left face1 face2) (when (and (boundp 'erc-track-minor-mode) erc-track-minor-mode) @@ -1735,6 +1744,23 @@ Play Go in Emacs, gnugo xpm refert [[https://github.com/okanotor/dotemacs/blob/f #+END_SRC +** View only for some directory +When see function by =C-h f=, and visit the source code, I would like the buffer is read only. See [[http://emacs.stackexchange.com/questions/3676/how-to-enter-view-only-mode-when-browsing-emacs-source-code-from-help/3681#3681][here]] +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (dir-locals-set-class-variables + 'emacs + '((nil . ((buffer-read-only . t) + (show-trailing-whitespace . nil) + (tab-width . 8) + (eval . (whitespace-mode -1)))))) + + ;; (dir-locals-set-directory-class (expand-file-name "/usr/local/share/emacs") 'emacs) + (dir-locals-set-directory-class "/usr/local/Cellar/emacs" 'emacs) + ;; (dir-locals-set-directory-class "~/.emacs.d/elpa" 'emacs) + (dir-locals-set-directory-class "~/dotfiles/emacs.d/elpa" 'emacs) + (dir-locals-set-directory-class "~/dotfiles/emacs.d/el-get" 'emacs) +#+END_SRC + ** Info plus #+BEGIN_SRC emacs-lisp :tangle yes :results silent (el-get-bundle info+ @@ -1831,11 +1857,25 @@ Dired+ (define-key dired-mode-map (kbd "g") 'dired-goto-file)) #+END_SRC +* Completion +company mode and company-statistics +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (use-package company + :ensure t + :diminish company-mode + :init (setq company-idle-delay 0.1) + :config + (global-company-mode)) + + (use-package company-statistics + :ensure t + :config + (company-statistics-mode)) +#+END_SRC + * Programming Language ** Emacs Lisp - #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (use-package color-identifiers-mode :ensure t :init @@ -1844,14 +1884,10 @@ Dired+ :diminish color-identifiers-mode) (global-prettify-symbols-mode t) - #+END_SRC -**** Lispy Mode - In Lisp Mode, =M-o= is defined, but I use this for global hydra window. So here disable this key bindings in =lispy-mode-map= after loaded. see [[http://stackoverflow.com/questions/298048/how-to-handle-conflicting-keybindings][here]] - #+BEGIN_SRC emacs-lisp :tangle yes :results silent (use-package lispy :ensure t @@ -1864,6 +1900,7 @@ bindings in =lispy-mode-map= after loaded. see [[http://stackoverflow.com/questi #+END_SRC ** Perl +*** CPerl mode [[https://www.emacswiki.org/emacs/CPerlMode][CPerl mode]] has more features than =PerlMode= for perl programming. Alias this to =CPerlMode= #+BEGIN_SRC emacs-lisp :tangle yes :results silent (defalias 'perl-mode 'cperl-mode) @@ -1886,15 +1923,34 @@ bindings in =lispy-mode-map= after loaded. see [[http://stackoverflow.com/questi (defalias 'perldoc 'cperl-perldoc) #+END_SRC -- auto insert -- run script +*** Perl template +Refer [[https://www.emacswiki.org/emacs/AutoInsertMode][AutoInsertMode]] Wiki +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (eval-after-load 'autoinsert + '(define-auto-insert '("\\.pl\\'" . "Perl skeleton") + '( + "Empty" + "#!/usr/bin/perl -w" \n + \n + "use strict;" > \n \n + > _ + ))) +#+END_SRC +*** Keywords +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (font-lock-add-keywords 'cperl-mode + '(("\\(say\\)" . font-lock-function-name-face))) + + (font-lock-add-keywords 'Man-mode + '(("\\(NAME\\)" . font-lock-function-name-face))) +#+END_SRC + +*** Run Perl Change the compile-command to set the default command run when call =compile= Mapping =s-r= (on Mac, it's =Command + R= to run the script. Here =current-prefix-arg= is set to call =compilation= interactively. - #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (defun my-perl-hook () (progn (setq-local compilation-read-command nil) @@ -1903,23 +1959,18 @@ to call =compilation= interactively. (if buffer-file-name (shell-quote-argument buffer-file-name)))) (local-set-key (kbd "s-r") - (lambda () - (interactive) - ; (setq current-prefix-arg '(4)) ; C-u - (call-interactively 'compile))))) + (lambda () + (interactive) + ; (setq current-prefix-arg '(4)) ; C-u + (call-interactively 'compile))))) (add-hook 'cperl-mode-hook 'my-perl-hook) - - #+END_SRC ** C & C++ - #+BEGIN_SRC emacs-lisp :tangle yes :results silent - (setq c-default-style "stroustrup" c-basic-offset 4) - #+END_SRC * Compile @@ -1990,20 +2041,6 @@ Set the environments vairables in compilation mode ))) #+END_SRC -** Perl Auto Insert -Refer [[https://www.emacswiki.org/emacs/AutoInsertMode][AutoInsertMode]] Wiki -#+BEGIN_SRC emacs-lisp :tangle yes :results silent - (eval-after-load 'autoinsert - '(define-auto-insert '("\\.pl\\'" . "Perl skeleton") - '( - "Empty" - "#!/usr/bin/perl -w" \n - \n - "use strict;" > \n \n - > _ - ))) -#+END_SRC - ** Python template #+BEGIN_SRC emacs-lisp :tangle yes :results silent (eval-after-load 'autoinsert @@ -2086,32 +2123,6 @@ Emacs lisp auto-insert, based on the default module in =autoinsert.el=, but repl > _))) #+END_SRC -* Completion - -company mode - -#+BEGIN_SRC emacs-lisp :tangle yes :results silent - - (use-package company - :ensure t - :diminish company-mode - :init (setq company-idle-delay 0.1) - :config - (global-company-mode)) - -#+END_SRC - -[[https://github.com/company-mode/company-statistics][company-statistics]] - -#+BEGIN_SRC emacs-lisp :tangle yes :results silent - - (use-package company-statistics - :ensure t - :config - (company-statistics-mode)) - -#+END_SRC - * Markdown mode #+BEGIN_SRC emacs-lisp :tangle yes :results silent (use-package markdown-mode