init.el
changeset 78 7d7662fcc8d1
parent 77 c99c95938a05
child 82 12cf67bc486c
equal deleted inserted replaced
77:c99c95938a05 78:7d7662fcc8d1
    21 
    21 
    22 (column-number-mode t)                        ; show column numbers
    22 (column-number-mode t)                        ; show column numbers
    23 (delete-selection-mode t)                     ; replace highlighted text
    23 (delete-selection-mode t)                     ; replace highlighted text
    24 (windmove-default-keybindings)                ; move between windows with shift-arrow
    24 (windmove-default-keybindings)                ; move between windows with shift-arrow
    25 (fset 'yes-or-no-p 'y-or-n-p)                 ; replace yes/no prompts
    25 (fset 'yes-or-no-p 'y-or-n-p)                 ; replace yes/no prompts
    26 (global-hl-line-mode t)                       ; highlight current line
    26 ;; (global-hl-line-mode t)                    ; highlight current line
    27 
    27 
    28 
    28 
    29 ;;; Coding
    29 ;;; Coding
    30 (which-func-mode t)                           ; show current function
    30 (which-func-mode t)                           ; show current function
    31 (show-paren-mode t)                           ; show matching paren
    31 (show-paren-mode t)                           ; show matching paren
    45    ring-bell-function 'ignore
    45    ring-bell-function 'ignore
    46    mac-command-modifier 'meta
    46    mac-command-modifier 'meta
    47    ns-pop-up-frames nil
    47    ns-pop-up-frames nil
    48    ispell-program-name "/usr/local/bin/aspell"))
    48    ispell-program-name "/usr/local/bin/aspell"))
    49 
    49 
       
    50 
    50 ;;; Xorg
    51 ;;; Xorg
    51 (when window-system
    52 (when window-system
    52   (tool-bar-mode -1)                          ; remove tool bar
    53   (tool-bar-mode -1)                          ; remove tool bar
    53   (scroll-bar-mode -1)                        ; remove scroll bar
    54   (scroll-bar-mode -1)                        ; remove scroll bar
    54   (unless is-mac (menu-bar-mode -1))          ; remove menu bar
    55   (unless is-mac (menu-bar-mode -1))          ; remove menu bar
    55   (visual-line-mode t)                        ; word wrap break on whitespace
    56   (visual-line-mode t)                        ; word wrap break on whitespace
    56   (set-default-font (if is-mac "Ubuntu Mono-12" "Ubuntu Mono-10.5")))
    57   (set-default-font (if is-mac "Ubuntu Mono-12" "Ubuntu Mono-10.5")))
    57 
    58 
       
    59 
    58 ;;;; Mode-Specific ;;;;
    60 ;;;; Mode-Specific ;;;;
    59 
    61 
    60 ;;; text-mode
    62 ;;; text-mode
    61 (add-hook 'fundamental-mode-hook 'flyspell-mode)      ; spellcheck text
    63 (add-hook 'fundamental-mode-hook 'flyspell-mode)      ; spellcheck text
    62 (add-hook 'fundamental-mode-hook 'turn-on-auto-fill)  ; autofill text
    64 (add-hook 'fundamental-mode-hook 'turn-on-auto-fill)  ; autofill text
       
    65 
    63 
    66 
    64 ;;; ido-mode
    67 ;;; ido-mode
    65 (ido-mode t)                                          ; file/buffer selector
    68 (ido-mode t)                                          ; file/buffer selector
    66 (setq-default
    69 (setq-default
    67  ido-enable-flex-matching t                           ; fuzzy matching for ido mode
    70  ido-enable-flex-matching t                           ; fuzzy matching for ido mode
    68  ido-create-new-buffer 'always                        ; create new buffer without prompt
    71  ido-create-new-buffer 'always                        ; create new buffer without prompt
    69  ido-everywhere t                                     ; use ido where possible
    72  ido-everywhere t                                     ; use ido where possible
    70  ido-max-window-height 1)                             ; max ido window height
    73  ido-max-window-height 1)                             ; max ido window height
    71 
    74 
       
    75 
    72 ;;; whitespace-mode
    76 ;;; whitespace-mode
    73 (global-whitespace-mode t)                            ; show whitespace
    77 (global-whitespace-mode t)                            ; show whitespace
    74 (add-hook 'before-save-hook 'whitespace-cleanup)      ; cleanup whitespace on exit
    78 (add-hook 'before-save-hook 'whitespace-cleanup)      ; cleanup whitespace on exit
    75 (setq-default
    79 (setq-default
    76  whitespace-line-column 120                           ; column width
    80  whitespace-line-column 120                           ; column width
    77  whitespace-style                                     ; whitespace to highlight
    81  whitespace-style                                     ; whitespace to highlight
    78  '(trailing lines-tail empty indentation
    82  '(trailing lines-tail empty indentation
    79             space-before-tab space-after-tab))
    83             space-before-tab space-after-tab))
       
    84 
    80 
    85 
    81 ;;; org-mode
    86 ;;; org-mode
    82 (add-hook
    87 (add-hook
    83  'org-mode-hook
    88  'org-mode-hook
    84  (lambda ()
    89  (lambda ()
    85    (local-set-key (kbd "M-p") 'org-move-item-up)
    90    (local-set-key (kbd "M-p") 'org-move-item-up)
    86    (local-set-key (kbd "M-S-p") 'org-move-subtree-up)
    91    (local-set-key (kbd "M-S-p") 'org-move-subtree-up)
    87    (local-set-key (kbd "M-n") 'org-move-item-down)
    92    (local-set-key (kbd "M-n") 'org-move-item-down)
    88    (local-set-key (kbd "M-S-n") 'org-move-subtree-down)))
    93    (local-set-key (kbd "M-S-n") 'org-move-subtree-down)))
       
    94 
    89 
    95 
    90 ;;; ibuffer
    96 ;;; ibuffer
    91 (global-set-key (kbd "C-x C-b") 'ibuffer)             ; better buffer browser
    97 (global-set-key (kbd "C-x C-b") 'ibuffer)             ; better buffer browser
    92 (setq-default
    98 (setq-default
    93  ibuffer-show-empty-filter-groups nil
    99  ibuffer-show-empty-filter-groups nil
   118 expand-region smex hgignore-mode ido-at-point markdown-mode
   124 expand-region smex hgignore-mode ido-at-point markdown-mode
   119 hgignore-mode move-text paredit rainbow-delimiters rainbow-mode
   125 hgignore-mode move-text paredit rainbow-delimiters rainbow-mode
   120 json-mode json-reformat solarized-theme terraform-mode
   126 json-mode json-reformat solarized-theme terraform-mode
   121 visual-regexp yasnippet yaml-mode zencoding-mode))
   127 visual-regexp yasnippet yaml-mode zencoding-mode))
   122 
   128 
   123 ;;; terminal
   129 
       
   130 ;;; shell
   124 (global-set-key (kbd "C-c s") 'eshell)  ; start shell
   131 (global-set-key (kbd "C-c s") 'eshell)  ; start shell
   125 (exec-path-from-shell-copy-env "PYTHONPATH")
   132 (exec-path-from-shell-copy-env "PYTHONPATH")
   126 (exec-path-from-shell-initialize)
   133 (exec-path-from-shell-initialize)
   127 (eshell)
   134 (eshell)
   128 (add-hook 'eshell-mode-hook (lambda () (setenv "TERM" "emacs")))
   135 (add-hook 'eshell-mode-hook (lambda () (setenv "TERM" "emacs")))
   129 
   136 
       
   137 
   130 ;;; custom requires
   138 ;;; custom requires
   131 (require 'haskell-init)
   139 (require 'haskell-init)
   132 (require 'javascript-init)
   140 (require 'javascript-init)
   133 (require 'c-init)
   141 (require 'c-init)
   134 (require 'ansible-init)
   142 (require 'ansible-init)
   135 
   143 
       
   144 
   136 ;;; ido / smex / completion
   145 ;;; ido / smex / completion
   137 (ido-at-point-mode)
   146 (ido-at-point-mode)
   138 (global-set-key (kbd "M-/") 'completion-at-point)
   147 (global-set-key (kbd "M-/") 'completion-at-point)
   139 (global-set-key (kbd "M-x") 'smex)
   148 (global-set-key (kbd "M-x") 'smex)
   140 (global-set-key (kbd "M-X") 'smex-major-mode-commands)
   149 (global-set-key (kbd "M-X") 'smex-major-mode-commands)
       
   150 
       
   151 
       
   152 ;;; emacs-lisp-mode
       
   153 (add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode)
       
   154 
   141 
   155 
   142 ;;; ace-mode
   156 ;;; ace-mode
   143 (define-key global-map (kbd "C-c SPC") 'ace-jump-mode)
   157 (define-key global-map (kbd "C-c SPC") 'ace-jump-mode)
   144 ;; (autoload
   158 ;; (autoload
   145 ;;   'ace-jump-mode-pop-mark
   159 ;;   'ace-jump-mode-pop-mark
   152 
   166 
   153 
   167 
   154 ;;; company-mode
   168 ;;; company-mode
   155 (add-hook 'after-init-hook 'global-company-mode)
   169 (add-hook 'after-init-hook 'global-company-mode)
   156 (global-set-key (kbd "M-/") 'company-complete)
   170 (global-set-key (kbd "M-/") 'company-complete)
   157 (custom-set-variables
   171 (setq-default
   158  '(company-idle-delay nil)
   172  company-idle-delay nil
   159  '(company-minimum-prefix-length 2)
   173  company-minimum-prefix-length 2
   160  '(company-selection-wrap-around t)
   174  company-selection-wrap-around t
   161  '(company-show-numbers t)
   175  company-show-numbers t
   162  '(company-tooltip-align-annotations t))
   176  company-tooltip-align-annotations t)
       
   177 
   163 
   178 
   164 ;;; uniquify
   179 ;;; uniquify
   165 (require 'uniquify)                     ; unique buffer names with dirs
   180 (require 'uniquify)                     ; unique buffer names with dirs
   166 (setq
   181 (setq
   167  uniquify-buffer-name-style 'post-forward
   182  uniquify-buffer-name-style 'post-forward
   168  uniquify-separator ":")
   183  uniquify-separator ":")
   169 
   184 
       
   185 
   170 ;;; color-theme
   186 ;;; color-theme
   171 (setq-default
   187 (setq-default
   172  custom-safe-themes
   188  custom-safe-themes
   173  '("8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
   189  '("8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
   174    "d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879" default))
   190    "d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879" default))
   175 (load-theme 'solarized-light)
   191 (load-theme 'solarized-light)
   176 
   192 
       
   193 
   177 ;;; yasnippets
   194 ;;; yasnippets
   178 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
   195 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
   179 ;; (setq-default yas-snippet-dirs '("~/.emacs.d/snippets"))
       
   180 (yas-global-mode t)
   196 (yas-global-mode t)
   181 
   197 
   182 
   198 
   183 ;;; markdown-mode
   199 ;;; markdown-mode
   184 (add-hook 'markdown-mode-hook 'flyspell-mode)
   200 (add-hook 'markdown-mode-hook 'flyspell-mode)
   192  'html-mode-hook
   208  'html-mode-hook
   193  (lambda ()
   209  (lambda ()
   194    (zencoding-mode)
   210    (zencoding-mode)
   195    (rainbow-mode)))
   211    (rainbow-mode)))
   196 
   212 
       
   213 
   197 ;;; css-mode
   214 ;;; css-mode
   198 (add-hook 'css-mode-hook 'rainbow-mode)
   215 (add-hook 'css-mode-hook 'rainbow-mode)
       
   216 
   199 
   217 
   200 ;;; coding-modes map
   218 ;;; coding-modes map
   201 (mapc
   219 (mapc
   202  (lambda (x)
   220  (lambda (x)
   203    (add-hook x
   221    (add-hook x
   215    clojure-mode-hook
   233    clojure-mode-hook
   216    emacs-lisp-mode-hook
   234    emacs-lisp-mode-hook
   217    conf-mode-hook
   235    conf-mode-hook
   218    yaml-mode-hook))
   236    yaml-mode-hook))
   219 
   237 
       
   238 
   220 ;;; expand-region
   239 ;;; expand-region
   221 (global-set-key (kbd "C-=") 'er/expand-region)
   240 (global-set-key (kbd "C-=") 'er/expand-region)
       
   241 
   222 
   242 
   223 ;;; move-text
   243 ;;; move-text
   224 (global-set-key (kbd "M-p") 'move-text-up)
   244 (global-set-key (kbd "M-p") 'move-text-up)
   225 (global-set-key (kbd "M-n") 'move-text-down)
   245 (global-set-key (kbd "M-n") 'move-text-down)
   226 
   246 
       
   247 
   227 ;;; visual-regexp
   248 ;;; visual-regexp
   228 (global-set-key (kbd "C-M-%") 'vr/query-replace)
   249 (global-set-key (kbd "C-M-%") 'vr/query-replace)
   229 (global-set-key (kbd "M-%") 'vr/replace)
   250 (global-set-key (kbd "M-%") 'vr/replace)