init.el
changeset 87 5e8b9d224e3e
parent 85 0b91f7fe5a89
child 88 0ed9a6acb330
equal deleted inserted replaced
85:0b91f7fe5a89 87:5e8b9d224e3e
     4 ;;;; General ;;;;
     4 ;;;; General ;;;;
     5 (add-to-list 'load-path "~/.emacs.d/elisp")   ; set default emacs load path
     5 (add-to-list 'load-path "~/.emacs.d/elisp")   ; set default emacs load path
     6 
     6 
     7 (setq-default
     7 (setq-default
     8  gc-cons-threshold 20000000                   ; gc every 20 MB allocated (form flx-ido docs)
     8  gc-cons-threshold 20000000                   ; gc every 20 MB allocated (form flx-ido docs)
     9  ediff-split-window-function
       
    10  'split-window-horizontally                   ; diff horizontally
       
    11  inhibit-splash-screen t                      ; disable splash screen
     9  inhibit-splash-screen t                      ; disable splash screen
    12  truncate-lines t                             ; truncate, not wrap, lines
    10  truncate-lines t                             ; truncate, not wrap, lines
    13  indent-tabs-mode nil                         ; only uses spaces for indentation
    11  indent-tabs-mode nil                         ; only uses spaces for indentation
    14  split-width-threshold 181                    ; min width to split window horizontially
    12  split-width-threshold 181                    ; min width to split window horizontially
    15  split-height-threshold 120                   ; min width to split window vertically
    13  split-height-threshold 120                   ; min width to split window vertically
    35 (global-set-key (kbd "C-c r") 'recompile)     ; recompile
    33 (global-set-key (kbd "C-c r") 'recompile)     ; recompile
    36 (global-set-key (kbd "C-c a") 'align-regexp)  ; align
    34 (global-set-key (kbd "C-c a") 'align-regexp)  ; align
    37 (global-set-key (kbd "C-c g") 'rgrep)         ; grep
    35 (global-set-key (kbd "C-c g") 'rgrep)         ; grep
    38 
    36 
    39 
    37 
       
    38 ;;; ediff
       
    39 (setq-default
       
    40   ediff-split-window-function 'split-window-horizontally
       
    41   ediff-window-setup-function 'ediff-setup-windows-plain)
       
    42 
       
    43 
    40 ;;; Darwin
    44 ;;; Darwin
    41 (setq is-mac (equal system-type 'darwin))
    45 (setq is-mac (equal system-type 'darwin))
    42 (when is-mac
    46 (when is-mac
    43   (setq-default
    47   (setq-default
    44    ring-bell-function 'ignore
    48    ring-bell-function 'ignore
    97    (local-set-key (kbd "M-S-n") 'org-move-subtree-down)))
   101    (local-set-key (kbd "M-S-n") 'org-move-subtree-down)))
    98 
   102 
    99 
   103 
   100 ;;; ibuffer
   104 ;;; ibuffer
   101 (global-set-key (kbd "C-x C-b") 'ibuffer)             ; better buffer browser
   105 (global-set-key (kbd "C-x C-b") 'ibuffer)             ; better buffer browser
   102 (setq-default
   106 (require 'ibuffer)
   103  ibuffer-show-empty-filter-groups nil
   107 (require 'ibuf-ext)
   104  ibuffer-saved-filter-groups
   108 (defun ibuffer-generate-filter-groups-by-major-mode ()
   105  '(("default"
   109   (flet
   106     ("Emacs Lisp" (mode . emacs-lisp-mode))
   110       ((mode-group
   107     ("Haskell" (mode . haskell-mode))
   111         (mode)
   108     ("Cabal" (mode . haskell-cabal-mode))
   112         (let ((mode-title
   109     ("Python" (mode . python-mode))
   113                (capitalize (car (split-string (symbol-name mode) "-" t)))))
   110     ("Jython" (mode . jython-mode))
   114           (cons mode-title `((mode . ,mode)))))
   111     ("Clojure" (mode . clojure-mode))
   115        (buffer-modes
   112     ("Markup" (mode . sgml-mode))
   116         ()
   113     ("HTML" (mode . html-mode))
   117         (flet ((buffer-mode (buffer) (buffer-local-value 'major-mode buffer)))
   114     ("CSS" (mode . css-mode))
   118           (ibuffer-remove-duplicates (remq nil (mapcar 'buffer-mode (buffer-list)))))))
   115     ("C++" (mode . c++-mode)))))
   119     (mapcar 'mode-group (buffer-modes))))
   116 (add-hook
   120 
   117  'ibuffer-mode-hook
   121 (defun ibuffer-major-mode-group-hook ()
   118  (lambda () (ibuffer-switch-to-saved-filter-groups "default")))
   122   (interactive)
       
   123   (setq ibuffer-filter-groups (ibuffer-generate-filter-groups-by-major-mode))
       
   124   (ibuffer-update nil t)
       
   125   (message "ibuffer-major-mode: groups set"))
       
   126 
       
   127 (setq-default ibuffer-show-empty-filter-groups nil)
       
   128 (add-hook 'ibuffer-hook (lambda () (ibuffer-major-mode-group-hook)))
   119 
   129 
   120 
   130 
   121 ;;; shell
   131 ;;; shell
   122 (global-set-key (kbd "C-c s") 'eshell)  ; start shell
   132 (global-set-key (kbd "C-c s") 'eshell)  ; start shell
   123 (exec-path-from-shell-copy-env "PYTHONPATH")
   133 (exec-path-from-shell-copy-env "PYTHONPATH")
   184  :foreground (face-foreground 'highlight))
   194  :foreground (face-foreground 'highlight))
   185 (show-paren-mode t)
   195 (show-paren-mode t)
   186 
   196 
   187 
   197 
   188 ;;; yasnippets
   198 ;;; yasnippets
   189 (with-eval-after-load 'yasnippet
   199 ;; (with-eval-after-load 'yasnippet
   190   (setq yas-snippet-dirs (remq 'yas-installed-snippets-dir yas-snippet-dirs)))
   200 ;;   (setq yas-snippet-dirs (remq 'yas-installed-snippets-dir yas-snippet-dirs)))
   191 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
   201 ;; (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
   192 (yas-global-mode t)
   202 ;; (yas-global-mode t)
   193 
   203 
   194 
   204 
   195 ;;; markdown-mode
   205 ;;; markdown-mode
   196 (add-hook 'markdown-mode-hook 'flyspell-mode)
   206 (add-hook 'markdown-mode-hook 'flyspell-mode)
   197 (setq-default markdown-command "pandoc -f markdown_github")
   207 (setq-default markdown-command "pandoc -f markdown_github")
   215    python-mode-hook
   225    python-mode-hook
   216    haskell-mode-hook
   226    haskell-mode-hook
   217    js2-mode-hook
   227    js2-mode-hook
   218    html-mode-hook
   228    html-mode-hook
   219    css-mode-hook
   229    css-mode-hook
       
   230    sass-mode-hook
   220    clojure-mode-hook
   231    clojure-mode-hook
   221    emacs-lisp-mode-hook
   232    emacs-lisp-mode-hook
   222    conf-mode-hook
   233    conf-mode-hook
   223    yaml-mode-hook))
   234    yaml-mode-hook))
   224 
   235