(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)
'("%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"
(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)
#+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+
(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
: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
#+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)
(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)
(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
)))
#+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
> _)))
#+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