2015-01-30 05:10:28 +00:00
( add-to-list 'load-path " ~/.emacs.d/elisp/ " )
( add-to-list 'load-path " ~/.emacs.d/elisp-git/evil/ " )
( add-to-list 'load-path " ~/.emacs.d/elisp-git/window-numbering/ " )
( add-to-list 'load-path " ~/.emacs.d/elisp-git/evil-snipe/ " )
( add-to-list 'load-path " ~/.emacs.d/elisp-git/git-modes/ " )
( add-to-list 'load-path " ~/.emacs.d/elisp-git/magit/ " )
( add-to-list 'load-path " ~/.emacs.d/user/ " )
2014-10-06 15:37:29 +00:00
;;;; UTF-8 magic
2014-09-29 18:37:30 +00:00
( setq locale-coding-system 'utf-8 )
( set-terminal-coding-system 'utf-8 )
( set-keyboard-coding-system 'utf-8 )
( set-selection-coding-system 'utf-8 )
( prefer-coding-system 'utf-8 )
2014-10-06 15:37:29 +00:00
;;;; Simplify the GUI, thanks http://www.masteringemacs.org/articles/2010/10/04/beginners-guide-to-emacs/
2014-09-29 18:37:30 +00:00
( menu-bar-mode -1 )
( tool-bar-mode -1 )
( scroll-bar-mode -1 )
2014-10-06 15:37:29 +00:00
2015-01-30 21:49:15 +00:00
;;;; Disable linewrapping
( defun line-trunc-set ( )
( global-visual-line-mode -1 )
( setq-default truncate-partial-width-windows t )
( setq-default truncate-lines t ) )
( add-hook 'text-mode-hook 'line-trunc-set )
( add-hook 'emacs-lisp-mode-hook 'line-trunc-set )
( add-hook 'evil-mode-hook 'line-trunc-set )
;(global-set-key (kbd "C-x T") 'toggle-truncate-lines)
( global-set-key ( kbd " C-x t " ) 'global-visual-line-mode )
2014-10-06 15:37:29 +00:00
;;;; Tab settings
2014-09-29 18:37:30 +00:00
( setq default-tab-width 4 )
2015-01-30 05:11:52 +00:00
;(define-key text-mode-map (kbd "TAB") 'self-insert-command)
( setq-default indent-tabs-mode nil )
2014-10-06 15:37:29 +00:00
;;;; Fix scrolling
2015-01-30 23:10:31 +00:00
( setq scroll-conservatively 10000 )
( setq auto-window-vscroll nil )
2014-10-06 15:37:29 +00:00
;;;; Fix Emacs' definition of a sentence
2014-09-29 18:37:30 +00:00
( setq sentence-end-double-space nil )
2014-10-06 15:37:29 +00:00
;;;; Shiny wrap style, thanks Xah Lee
2014-09-29 18:37:30 +00:00
( global-visual-line-mode 1 )
2014-10-06 15:37:29 +00:00
2015-01-30 23:04:59 +00:00
;;;; Highlight current line
2014-09-29 18:37:30 +00:00
( global-hl-line-mode 1 )
2014-10-06 15:37:29 +00:00
;;;; Custom keys
2014-09-29 18:37:30 +00:00
( global-set-key ( kbd " C-y " ) 'whole-line-or-region-yank )
2015-01-30 23:10:11 +00:00
;(global-set-key (kbd "M-w") 'whole-line-or-region-kill-ring-save)
2014-09-29 18:37:30 +00:00
( global-set-key ( kbd " C-w " ) 'whole-line-or-region-kill-region )
( global-set-key ( kbd " C-x C-1 " ) 'delete-other-windows )
( global-set-key ( kbd " C-x C-2 " ) 'split-window-below )
( global-set-key ( kbd " C-x C-3 " ) 'split-window-right )
( global-set-key ( kbd " C-x C-0 " ) 'delete-window )
;(global-set-key (kbd "C-`") 'point-to-register)
;(global-set-key (kbd "C-'") 'jump-to-register)
( global-set-key ( kbd " C-h " ) 'backward-delete-char )
2015-01-30 23:10:11 +00:00
( global-set-key ( kbd " C-x C-d " ) 'dired )
( global-set-key ( kbd " C-x l " ) 'helm-mini )
;(global-set-key (kbd "C-x l") 'recentf-open-files)
; count-lines-page after helm
;(global-set-key (kbd "C-x s") 'helm-do-grep)
2014-09-29 18:37:30 +00:00
;(global-set-key (kbd "C-x") 'backward-kill-word)
;(global-set-key (kbd "C-,") 'string-rectangle 'TAB)
2014-10-03 01:11:00 +00:00
( global-unset-key ( kbd " C-u " ) )
2014-10-06 10:56:18 +00:00
( global-unset-key ( kbd " C-x d " ) )
( global-set-key ( kbd " C-x df " ) 'delete-frame )
2014-10-07 05:23:28 +00:00
;;;; make-frame key is after Helm's config
2014-10-06 15:37:29 +00:00
2015-01-30 23:10:11 +00:00
( global-set-key ( kbd " C-x z " ) 'switch-to-buffer )
( global-set-key ( kbd " C-x b " ) 'eval-buffer )
( global-unset-key ( kbd " C-c s " ) )
( global-set-key ( kbd " C-x T " ) 'neotree-toggle )
2014-10-06 15:37:29 +00:00
;;;; Fix multi-line indenting - thanks forcer!
;(defun hn/add-tab-in-front-of-every-line-in-region (beg end) (interactive "r")
;(save-excursion (goto-char beg) (goto-char (point-at-bol)) (while (re-search-forward "^" end t) (insert "\t"))))
;(global-set-key (kbd "C-.") 'hn/add-tab-in-front-of-every-line-in-region)
;;;; Indicate god-mode with cursor color
2014-10-06 06:44:58 +00:00
;(defun my-update-cursor ()
;(set-cursor-color
;(if (or god-local-mode buffer-read-only) "#ffffff" "#ff0000")))
;(add-hook 'god-mode-enabled-hook 'my-update-cursor)
;(add-hook 'god-mode-disabled-hook 'my-update-cursor)
2014-10-06 15:37:29 +00:00
;;;; Transparent Emacs window
2014-09-29 18:37:30 +00:00
;;(set-frame-parameter (selected-frame) 'alpha '(<active> [<inactive>]))
2014-10-06 06:44:58 +00:00
;(set-frame-parameter (selected-frame) 'alpha '(90 50))
;(add-to-list 'default-frame-alist '(alpha 90 50))
;(add-to-list 'load-path "~/.emacs.d/elisp/")
2014-10-06 15:37:29 +00:00
;;;; MELPA
2015-01-30 21:50:27 +00:00
;(require 'package)
;(add-to-list 'package-archives
; '("melpa" . "http://melpa.milkbox.net/packages/") t)
;(require 'package)
;(add-to-list 'package-archives
; '("melpa-stable" . "http://melpa-stable.milkbox.net/packages/") t)
;;;; Marmalade
2014-09-29 18:37:30 +00:00
( require 'package )
( add-to-list 'package-archives
2015-01-30 21:50:27 +00:00
' ( " marmalade " . " https://marmalade-repo.org/packages/ " ) )
2014-10-06 15:37:29 +00:00
2014-09-29 18:37:30 +00:00
;//// //// //// //// //// ////
;//// PACKAGE INITIALIZE ////
;//// //// //// //// //// ////
( package-initialize )
2014-10-06 15:37:29 +00:00
;;;; Set theme
2014-10-08 21:12:12 +00:00
( load-theme 'monokai t )
2014-10-06 15:37:29 +00:00
;;;; God Mode
2014-09-29 18:37:30 +00:00
;(require 'god-mode)
2014-10-06 15:37:29 +00:00
;;;; Evil mode
2014-09-29 18:37:30 +00:00
( require 'evil )
( evil-mode 1 )
2015-01-30 23:15:49 +00:00
;; Want something to switch between evil and god-model, instead of this.
;; They say there's a plugin for it...
( global-set-key ( kbd " C-x e " ) ( evil-mode ) )
( define-key evil-normal-state-map " zR " 'yafolding-show-all )
( define-key evil-normal-state-map " zM " 'yafolding-hide-all )
( define-key evil-normal-state-map " zo " 'yafolding-show-element )
( define-key evil-normal-state-map " zc " 'yafolding-hide-element )
;(global-set-key (kbd "g C-g") 'count-words-region)
2015-01-30 23:17:00 +00:00
; The story so far - in evil-normal-state-map, I set 'i' to evil-previous-visual-line, 'k' to evil-next-visual-line, 'j' to evil-backward-char. Note that I forgot to set 'h' to insert at first...but that's not all - later I realized this didn't affect Visual mode :p 4 more lines for that. Next...d/c didn't work with ijkl. 4 more lines for evil-operator-state-map. After that - you usually want visual-line up/down movement, but _not_ when you hit d-j/k (or d-i/k)! So, in evil-operator-state-map, i and k are now vanilla evil-previous/next-line. Set gi/gk to evil-previous/next-line in normal and visual states, and to evil-previous/next-visual-line in operator state - 2 new lines to each group of 4.
( define-key evil-normal-state-map " i " 'evil-previous-visual-line )
( define-key evil-normal-state-map " k " 'evil-next-visual-line )
( define-key evil-normal-state-map " gi " 'evil-previous-line )
( define-key evil-normal-state-map " gk " 'evil-next-line )
( define-key evil-normal-state-map " j " 'evil-backward-char )
( define-key evil-normal-state-map " h " 'evil-insert )
( define-key evil-visual-state-map " i " 'evil-previous-visual-line )
( define-key evil-visual-state-map " k " 'evil-next-visual-line )
( define-key evil-visual-state-map " gi " 'evil-previous-line )
( define-key evil-visual-state-map " gk " 'evil-next-line )
( define-key evil-visual-state-map " j " 'evil-backward-char )
( define-key evil-visual-state-map " h " 'evil-insert )
( define-key evil-operator-state-map " i " 'evil-previous-line )
( define-key evil-operator-state-map " k " 'evil-next-line )
( define-key evil-operator-state-map " gi " 'evil-previous-visual-line )
( define-key evil-operator-state-map " gk " 'evil-next-visual-line )
( define-key evil-operator-state-map " j " 'evil-backward-char )
;(define-key evil-operator-state-map "h" 'evil-insert)
; evil-inner-tag ?
( define-key evil-operator-state-map " hW " 'evil-inner-WORD )
( define-key evil-operator-state-map " hw " 'evil-inner-word )
( define-key evil-operator-state-map " h \( " 'evil-inner-paren )
( define-key evil-operator-state-map " h \) " 'evil-inner-paren )
( define-key evil-operator-state-map " h \{ " 'evil-inner-curly )
( define-key evil-operator-state-map " h \} " 'evil-inner-curly )
( define-key evil-operator-state-map " h< " 'evil-inner-angle )
( define-key evil-operator-state-map " h> " 'evil-inner-angle )
( define-key evil-operator-state-map " h \[ " 'evil-inner-bracket )
( define-key evil-operator-state-map " h \] " 'evil-inner-bracket )
( define-key evil-operator-state-map " hs " 'evil-inner-sentence )
( define-key evil-operator-state-map " hp " 'evil-inner-paragraph )
( define-key evil-operator-state-map " h ` " 'evil-inner-back-quote )
( define-key evil-operator-state-map " h \" " 'evil-inner-double-quote )
( define-key evil-operator-state-map " h' " 'evil-inner-single-quote )
2014-10-06 15:37:29 +00:00
;;;; Ace Jump mode
2014-10-03 01:11:00 +00:00
;(require 'ace-jump-mode)
;(define-key global-map (kbd "C-c SPC") 'ace-jump-mode)
2014-10-06 15:37:29 +00:00
2015-01-30 23:04:59 +00:00
;;;; relative-line-numbers
( require 'relative-line-numbers )
;(setq relative-line-numbers-motion-function 'vertical-motion)
( setq relative-line-numbers-motion-function 'forward-visible-line )
( global-relative-line-numbers-mode 1 )
2014-10-06 15:37:29 +00:00
;;;; Enable Ido mode
;(require 'ido)
;(ido-mode t)
;(define-key ido-buffer-completion-map (kbd "C-h") 'ido-delete-backward-updir)
;(setq ido-enable-flex-matching t)
;;(global-set-key (kbd "DEL") 'ido-delete-backward-updir)
;;;; smex - Ido for Alt-x (M-x)
;(require 'smex)
;(smex-initialize)
;(global-set-key (kbd "M-x") 'smex)
;;;; Ido-ubiquitous
2014-09-29 18:37:30 +00:00
;(require 'ido-ubiquitous)
;(ido-ubiquitous-mode 1)
2014-10-06 15:37:29 +00:00
;;;; Helm
( require 'helm-config )
( require 'helm-grep )
( global-set-key ( kbd " C-c h " ) 'helm-command-prefix )
2014-10-07 05:23:28 +00:00
;(global-unset-key (kbd "C-x c"))
( define-key helm-map ( kbd " C-h " ) 'backward-delete-char )
2014-10-08 21:12:12 +00:00
;(define-key helm-map (kbd "C-i") 'hippie-expand)
( define-key helm-map ( kbd " C-i " ) 'minibuffer-complete )
2014-10-06 15:37:29 +00:00
( global-set-key ( kbd " M-x " ) 'helm-M-x )
2014-10-07 05:23:28 +00:00
( global-set-key ( kbd " C-x cf " ) 'make-frame )
2014-10-06 15:37:29 +00:00
( helm-mode 1 )
;;;; zlc
2014-10-03 01:11:00 +00:00
;(require 'zlc)
;(zlc-mode t)
2014-10-06 15:37:29 +00:00
;;;; Session.el
2014-09-29 18:37:30 +00:00
( require 'session )
( add-hook 'after-init-hook 'session-initialize )
2014-10-06 15:37:29 +00:00
;;;; Recentf-mode
2014-09-29 18:37:30 +00:00
( require 'recentf )
( recentf-mode 1 )
( setq recentf-max-menu-items 25 )
2014-10-08 21:12:12 +00:00
( setq recentf-max-saved-items 0 )
2014-09-29 18:37:30 +00:00
( global-set-key " \C -x \ \C -r " 'recentf-open-files )
2014-10-06 15:37:29 +00:00
;;;; text size change
2014-10-05 05:13:15 +00:00
( set-face-attribute 'default nil :font " -outline-Bitstream Vera Sans Mono-normal-normal-normal-mono-12-*-*-*-c-*-iso8859-1 " )
2014-10-06 15:37:29 +00:00
;;;; Ediff stuff
2014-09-29 18:37:30 +00:00
( setq ediff-window-setup-function 'ediff-setup-windows-plain )
2014-10-06 15:37:29 +00:00
;;;; ERC
2014-09-29 18:37:30 +00:00
;(setq erc-log-channels-directory "~/.emacs.d/erc/logs/")
2014-10-03 01:11:00 +00:00
;(setq erc-log-write-after-insert t)
2014-10-08 21:12:12 +00:00
( erc-fill-mode 'nil )
2014-10-06 15:37:29 +00:00
2014-10-07 05:23:28 +00:00
;;;; Win-switch
2014-10-06 06:44:58 +00:00
( require 'win-switch )
( global-set-key " \C -xo " 'win-switch-dispatch )
2015-01-30 23:17:00 +00:00
( win-switch-setup-keys-ijkl )
( setq win-switch-idle-time 0.5 )
2014-10-06 06:44:58 +00:00
( setq win-switch-other-window-first nil )
2015-01-30 23:17:00 +00:00
;(setq win-switch-other-window-first nil)
2014-10-07 05:23:28 +00:00
;;;; window-number
2014-10-06 06:44:58 +00:00
( require 'window-number )
( window-number-mode )
2014-10-07 05:23:28 +00:00
2014-10-08 21:12:12 +00:00
;;;; fullscreen-mode
( require 'fullscreen-mode )
( fullscreen-mode 1 )
2015-01-30 23:01:07 +00:00
;;;; yafolding.el
;(add-hook 'prog-mode-hook
; (lambda () (yafolding-mode)))
2014-10-06 06:44:58 +00:00
;;;; Here be customize dragons
2014-09-29 18:37:30 +00:00
( custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
2014-10-08 21:12:12 +00:00
' ( ansi-color-faces-vector [ default bold shadow italic underline bold bold-italic bold ] )
' ( ansi-term-color-vector [ unspecified " #1F1611 " " #660000 " " #144212 " " #EFC232 " " #5798AE " " #BE73FD " " #93C1BC " " #E6E1DC " ] )
' ( bongo-enabled-backends ( quote ( vlc timidity ) ) )
' ( custom-safe-themes ( quote ( " 4aee8551b53a43a883cb0b7f3255d6859d766b6c5e14bcb01bed572fcbef4328 " " d809ca3cef02087b48f3f94279b86feca896f544ae4a82b523fba823206b6040 " " a507b9ca4a605d5256716da70961741b9ef9ec3246041a4eb776102e8df18418 " " 2affb26fb9a1b9325f05f4233d08ccbba7ec6e0c99c64681895219f964aac7af " " 65ae93029a583d69a3781b26044601e85e2d32be8f525988e196ba2cb644ce6a " " 0795e2c85394140788d72d34969be4acb305e4a54149e7237787d9df27832fbb " " 8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4 " " 47bff723f2aca3a9a5726abcc52a7cc4192b556dd80b3f773589994d2ed24d16 " " 013e87003e1e965d8ad78ee5b8927e743f940c7679959149bbee9a15bd286689 " " ad9fc392386f4859d28fe4ef3803585b51557838dbc072762117adad37e83585 " " 1011be33e9843afd22d8d26b031fbbb59036b1ce537d0b250347c19e1bd959d0 " " 784d5ee4d33befba6a21702ead67f98346770be7cc17ab64952ae3866a403743 " " 930a202ae41cb4417a89bc3a6f969ebb7fcea5ffa9df6e7313df4f7a2a631434 " " 0e121ff9bef6937edad8dfcff7d88ac9219b5b4f1570fd1702e546a80dba0832 " " 442c946bc5c40902e11b0a56bd12edc4d00d7e1c982233545979968e02deb2bc " " e16a771a13a202ee6e276d06098bc77f008b73bbac4d526f160faa2d76c1dd0e " " 9eb5269753c507a2b48d74228b32dcfbb3d1dbfd30c66c0efed8218d28b8f0dc " " c4e6fe8f5728a5d5fd0e92538f68c3b4e8b218bcfb5e07d8afff8731cc5f3df0 " " c739f435660ca9d9e77312cbb878d5d7fd31e386a7758c982fa54a49ffd47f6e " " 97a2b10275e3e5c67f46ddaac0ec7969aeb35068c03ec4157cf4887c401e74b1 " " 024b0033a950d6a40bbbf2b1604075e6c457d40de0b52debe3ae994f88c09a4a " default ) ) )
2014-10-03 01:11:00 +00:00
' ( debug-on-error nil )
2014-10-08 21:12:12 +00:00
' ( diary-entry-marker ( quote font-lock-variable-name-face ) )
' ( emms-mode-line-icon-image-cache ( quote ( image :type xpm :ascent center :data " /* XPM */
static char *note [ ] = {
/* width height num_colors chars_per_pixel */
\" 10 11 2 1\",
/* colors */
\". c # 358d8d\",
\"# c None s None\",
/* pixels */
\"###...####\",
\"###.#...##\",
\"###.###...\",
\"###.#####.\",
\"###.#####.\",
\"#...#####.\",
\"....#####.\",
\"#..######.\",
\"#######...\",
\"######....\",
\"#######..#\" } ;")))
' ( emms-player-list ( quote ( emms-player-vlc emms-player-ogg123 emms-player-mplayer-playlist emms-player-mplayer emms-player-mpg321 ) ) )
' ( emms-playlist-mode-center-when-go t )
2014-10-03 01:11:00 +00:00
' ( erc-fill-mode nil )
2014-09-29 18:37:30 +00:00
' ( erc-generate-log-file-name-function ( quote erc-generate-log-file-name-network ) )
2014-10-05 05:13:15 +00:00
' ( erc-log-channels-directory " ~/.emacs.d/erc/logs/ " )
2014-09-29 18:37:30 +00:00
' ( erc-log-mode t )
2014-10-03 01:11:00 +00:00
' ( erc-log-write-after-insert t )
2014-09-29 18:37:30 +00:00
' ( erc-modules ( quote ( autojoin completion list log menu ring stamp ercn netsplit fill button match track readonly networks autojoin noncommands irccontrols move-to-prompt stamp ) ) )
' ( erc-nick ( quote ( " HisaoNakai " " [Batou] " " [Togusa] " " [2501] " ) ) )
' ( erc-stamp-mode t )
' ( erc-timestamp-format-left "
[ %Y %m %e %T %N ]
" )
2014-10-03 01:11:00 +00:00
' ( erc-timestamp-format-right nil )
2014-10-08 21:12:12 +00:00
' ( fci-rule-character-color " #452E2E " )
' ( gnus-logo-colors ( quote ( " #0d7b72 " " #adadad " ) ) )
' ( gnus-mode-line-image-cache ( quote ( image :type xpm :ascent center :data " /* XPM */
static char *gnus-pointer [ ] = {
/* width height num_colors chars_per_pixel */
\" 18 13 2 1\",
/* colors */
\". c # 358d8d\",
\"# c None s None\",
/* pixels */
\"##################\",
\"######..##..######\",
\"#####........#####\",
\"#.##.##..##...####\",
\"#...####.###...##.\",
\"#..###.######.....\",
\"#####.########...#\",
\"###########.######\",
\"####.###.#..######\",
\"######..###.######\",
\"###....####.######\",
\"###..######.######\",
\"###########.######\" } ;")))
2014-09-29 18:37:30 +00:00
' ( session-registers ( quote ( t 45 61 92 96 region ( 97 . 122 ) ) ) )
2014-10-06 06:44:58 +00:00
' ( session-use-package t nil ( session ) )
2014-09-29 18:37:30 +00:00
( custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
2014-10-06 06:44:58 +00:00
; Workgroups2
( require 'workgroups2 )
( workgroups-mode 1 )