601 lines
24 KiB
EmacsLisp
601 lines
24 KiB
EmacsLisp
(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/elisp-git/yafolding.el/")
|
|
(add-to-list 'load-path "~/.emacs.d/elisp-git/god-mode/")
|
|
(add-to-list 'load-path "~/.emacs.d/user/")
|
|
|
|
;;;; UTF-8 magic
|
|
(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)
|
|
|
|
;;;; Simplify the GUI, thanks http://www.masteringemacs.org/articles/2010/10/04/beginners-guide-to-emacs/
|
|
(menu-bar-mode -1)
|
|
(tool-bar-mode -1)
|
|
(scroll-bar-mode -1)
|
|
(setq focus-follows-mouse t)
|
|
(setq mouse-autoselect-window t)
|
|
|
|
;;;; Disable linewrapping
|
|
(defun line-trunc-set ()
|
|
(visual-line-mode -1)
|
|
;(setq-default truncate-partial-width-windows t)
|
|
;(setq-default truncate-lines t))
|
|
(setq truncate-partial-width-windows t)
|
|
(setq truncate-lines t))
|
|
;(add-hook 'text-mode-hook 'line-trunc-set)
|
|
(add-hook 'emacs-lisp-mode-hook 'line-trunc-set)
|
|
(add-hook 'org-mode-hook 'visual-line-mode)
|
|
(add-hook 'erc-mode-hook 'visual-line-mode)
|
|
;(global-set-key (kbd "C-x t") 'toggle-truncate-lines)
|
|
(global-set-key (kbd "C-x t") 'visual-line-mode)
|
|
(global-visual-line-mode 1)
|
|
|
|
;;;; Tab settings
|
|
(setq default-tab-width 4)
|
|
;(define-key text-mode-map (kbd "TAB") 'self-insert-command)
|
|
(setq-default indent-tabs-mode nil)
|
|
|
|
;;;; Fix scrolling
|
|
(setq scroll-conservatively 10000
|
|
scroll-preserve-screen-position t)
|
|
(setq auto-window-vscroll nil)
|
|
|
|
;;; Recenter screen on isearch matches
|
|
(add-hook 'isearch-mode-hook 'recenter)
|
|
(add-hook 'isearch-update-post-hook 'recenter)
|
|
(defadvice isearch-repeat-forward
|
|
(after isearch-repeat-forward-recenter activate)
|
|
(recenter))
|
|
(defadvice isearch-repeat-backward
|
|
(after isearch-repeat-backward-recenter activate)
|
|
(recenter))
|
|
|
|
(ad-activate 'isearch-repeat-forward)
|
|
(ad-activate 'isearch-repeat-backward)
|
|
|
|
;;;; While we're at it, let's add that to next-error as well
|
|
;;;; (this affects jumping to match from M-x grep , too)
|
|
(add-hook 'next-error-hook 'recenter)
|
|
|
|
;;;; ...and to magit-toggle-section
|
|
;;; It'd be really cool to (recenter 3) when you /open/ a section,
|
|
;;; and (recenter) when you close a section
|
|
(defadvice magit-toggle-section
|
|
(after magit-toggle-section-recenter activate)
|
|
(recenter 3))
|
|
(ad-activate 'magit-toggle-section)
|
|
|
|
(defadvice magit-unstage-item
|
|
(after magit-unstage-item-move)
|
|
(next-line))
|
|
(ad-activate 'magit-unstage-item)
|
|
|
|
;;;; Fix Emacs' definition of a sentence
|
|
(setq sentence-end-double-space nil)
|
|
|
|
;;;; Highlight current line
|
|
(global-hl-line-mode 1)
|
|
|
|
;;;; Saner Emacs editing
|
|
(global-set-key (kbd "C-h") 'backward-delete-char)
|
|
(define-key isearch-mode-map (kbd "C-h") 'isearch-delete-char)
|
|
(global-set-key (kbd "C-y") 'whole-line-or-region-yank)
|
|
(global-set-key (kbd "M-w") 'whole-line-or-region-kill-ring-save)
|
|
;(global-set-key (kbd "C-w") 'whole-line-or-region-kill-region)
|
|
(global-set-key (kbd "C-w") 'backward-kill-word)
|
|
|
|
(global-set-key (kbd "C-x C-k C-l") 'whole-line-or-region-kill-region)
|
|
(global-set-key (kbd "C-,") 'backward-paragraph)
|
|
(global-set-key (kbd "C-.") 'forward-paragraph)
|
|
(global-set-key (kbd "C-<") 'beginning-of-buffer)
|
|
(global-set-key (kbd "C->") 'end-of-buffer)
|
|
|
|
(setq dired-bind-jump nil)
|
|
(global-set-key (kbd "C-x C-j") 'join-line)
|
|
(global-set-key (kbd "C-x C-b") 'eval-buffer)
|
|
(global-set-key (kbd "C-x C-l") 'helm-mini)
|
|
|
|
(defun kill-line-0 ()
|
|
(interactive)
|
|
(kill-line 0))
|
|
;;;; Look Mom, a bug! paredit-kill with a zero arg can unbalance parens...
|
|
(defun paredit-kill-0 ()
|
|
(interactive)
|
|
(paredit-kill 0))
|
|
(global-set-key (kbd "C-u") 'kill-line-0)
|
|
|
|
;; C-z (suspend-frame) is utterly useless and disruptive - good place to put universal-argument
|
|
(global-unset-key (kbd "C-z"))
|
|
(global-set-key (kbd "C-z") 'universal-argument)
|
|
|
|
;; (defun contrapunctus-kill-line (&optional arg)
|
|
;; (interactive)
|
|
;; (if arg
|
|
;; (if mark-active
|
|
;; (kill-region arg)
|
|
;; (kill-line arg))
|
|
;; (if mark-active
|
|
;; (kill-region)
|
|
;; (kill-line))))
|
|
;; (global-set-key (kbd "C-k") 'contrapunctus-kill-line)
|
|
;; Chris Done (god-mode) recommends this, but Emacs' repeat command is almost useless...
|
|
;; (global-set-key (kbd "C-.") 'repeat)
|
|
|
|
;;;; I like the transpose commands
|
|
(global-unset-key (kbd "C-t"))
|
|
(global-set-key (kbd "C-t C-c") 'transpose-chars)
|
|
(global-set-key (kbd "C-t C-w") 'transpose-words)
|
|
(global-set-key (kbd "C-t C-l") 'transpose-lines)
|
|
(global-set-key (kbd "C-t C-s") 'transpose-sentences)
|
|
;; C-t C-x could also be a good choice
|
|
(global-set-key (kbd "C-t C-e") 'transpose-sexps)
|
|
(global-set-key (kbd "C-t C-p") 'transpose-paragraphs)
|
|
|
|
;;;; Vim-style prompt-less tag jumping
|
|
;;;; http://stackoverflow.com/questions/12074897/automatically-jump-to-tag-in-emacs
|
|
(defun find-tag-no-prompt ()
|
|
"Jump to the tag at point without prompting"
|
|
(interactive)
|
|
(find-tag (find-tag-default)))
|
|
(global-set-key (kbd "M-.") 'find-tag-no-prompt)
|
|
|
|
;;;; Custom keys
|
|
(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-x C-4 C-f") 'find-file-other-window)
|
|
;(global-set-key (kbd "C-`") 'point-to-register)
|
|
;(global-set-key (kbd "C-'") 'jump-to-register)
|
|
(global-set-key (kbd "C-x C-d") 'dired-jump)
|
|
(global-set-key (kbd "C-x l") 'helm-mini)
|
|
;(global-set-key (kbd "C-x l") 'recentf-open-files)
|
|
;(global-set-key (kbd "C-x") 'backward-kill-word)
|
|
;(global-set-key (kbd "C-,") 'string-rectangle 'TAB)
|
|
(global-unset-key (kbd "C-x d"))
|
|
(global-set-key (kbd "C-x df") 'delete-frame)
|
|
;;;; make-frame key is after Helm's config
|
|
(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 O") 'org-mode)
|
|
;(setq compilation-read-command nil)
|
|
(global-set-key (kbd "M-c") 'compile)
|
|
(global-set-key (kbd "<f2>") 'run-scheme)
|
|
(global-set-key (kbd "<f3>") 'run-lisp)
|
|
|
|
;;;; Just hit y or n to answer yes or no prompts! Shiny!
|
|
(defalias 'yes-or-no-p 'y-or-n-p)
|
|
|
|
(setq backup-by-copying t
|
|
backup-directory-alist
|
|
'(("." . "~/.emacs.d/saves/"))
|
|
delete-old-versions t
|
|
kept-new-versions 6
|
|
kept-old-versions 2
|
|
version-control t)
|
|
|
|
;;;; 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
|
|
;(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)
|
|
|
|
;;;; Transparent Emacs window
|
|
;;(set-frame-parameter (selected-frame) 'alpha '(<active> [<inactive>]))
|
|
;(set-frame-parameter (selected-frame) 'alpha '(90 50))
|
|
;(add-to-list 'default-frame-alist '(alpha 90 50))
|
|
|
|
;;;; MELPA
|
|
;(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)
|
|
|
|
(setq scheme-program-name "csi -:c")
|
|
(setq comint-prompt-read-only t)
|
|
|
|
(setq browse-url-browser-function 'browse-url-xdg-open)
|
|
|
|
;;;; Marmalade
|
|
(require 'package)
|
|
(add-to-list 'package-archives
|
|
'("marmalade" . "https://marmalade-repo.org/packages/"))
|
|
|
|
;//// //// //// //// //// ////
|
|
;//// PACKAGE INITIALIZE ////
|
|
;//// //// //// //// //// ////
|
|
(package-initialize)
|
|
|
|
;;;; Set theme
|
|
;(load-theme 'distinguished t)
|
|
;(require 'github-theme)
|
|
;(require 'heroku-theme)
|
|
;;;; Good theme but uses different font sizes in org-mode, and (I think) some weird non-monospace font
|
|
;(require 'monokai-theme)
|
|
(require 'molokai-theme)
|
|
|
|
;;;; chicken.el
|
|
(require 'chicken)
|
|
|
|
;;;; God Mode
|
|
(require 'god-mode)
|
|
(global-set-key (kbd "<escape>") 'god-local-mode)
|
|
(god-mode-all)
|
|
|
|
(defun my-update-cursor ()
|
|
(setq cursor-type (if (or god-local-mode buffer-read-only)
|
|
'box
|
|
'bar)))
|
|
|
|
(add-hook 'god-mode-enabled-hook 'my-update-cursor)
|
|
(add-hook 'god-mode-disabled-hook 'my-update-cursor)
|
|
|
|
;;;; Evil mode
|
|
(require 'evil)
|
|
;(evil-mode 1)
|
|
;; 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 (kbd "<tab>") 'forward-button)
|
|
(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)
|
|
|
|
; 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 "gi" 'evil-previous-visual-line)
|
|
(define-key evil-normal-state-map "gk" 'evil-next-visual-line)
|
|
(define-key evil-normal-state-map "i" 'evil-previous-line)
|
|
(define-key evil-normal-state-map "k" '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 "gi" 'evil-previous-visual-line)
|
|
(define-key evil-visual-state-map "gk" 'evil-next-visual-line)
|
|
(define-key evil-visual-state-map "i" 'evil-previous-line)
|
|
(define-key evil-visual-state-map "k" '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 "gi" 'evil-previous-visual-line)
|
|
(define-key evil-operator-state-map "gk" 'evil-next-visual-line)
|
|
(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 "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)
|
|
|
|
(define-key evil-motion-state-map "gi" 'evil-previous-visual-line)
|
|
(define-key evil-motion-state-map "gk" 'evil-next-visual-line)
|
|
;;;; set C-h to backspace when editing commands and searching
|
|
(defun kill-start-of-line () "Kill from point to start of line."
|
|
(interactive)
|
|
(kill-line 0))
|
|
(define-key evil-insert-state-map (kbd "C-u") 'kill-start-of-line)
|
|
|
|
;;;; evil-snipe
|
|
(require 'evil-snipe)
|
|
;(define-key evil-normal-state-map "f" 'evil-snipe-s)
|
|
;(define-key evil-operator-state-map "f" 'evil-snipe-s)
|
|
;(define-key evil-motion-state-map "f" 'evil-snipe-s)
|
|
;
|
|
;(define-key evil-normal-state-map "F" 'evil-snipe-S)
|
|
;(define-key evil-operator-state-map "F" 'evil-snipe-S)
|
|
;(define-key evil-motion-state-map "F" 'evil-snipe-S)
|
|
;
|
|
;(define-key evil-normal-state-map "s" 'evil-substitute)
|
|
;(define-key evil-normal-state-map "S" 'evil-change-whole-line)
|
|
|
|
(setq evil-snipe-count-scope 'letters)
|
|
;;;; s<RET>, S<RET>, ; and , don't work with this
|
|
;(setq evil-snipe-scope 'buffer)
|
|
;;;; This doesn't take two chars by default, which combined with unimplemented evil-snipe-count-scope 'vertical makes it nearly useless as a replacement for fFtT;
|
|
(evil-snipe-replace-evil)
|
|
;;;; buggy :(
|
|
;(setq evil-snipe-count-scope 'letters)
|
|
;;;; not implemented Q_Q
|
|
;(setq evil-snipe-count-scope 'vertical)
|
|
(global-evil-snipe-mode 1)
|
|
|
|
;;;; org
|
|
(require 'org)
|
|
; evil-ify org-mode
|
|
(define-key outline-mode-map (kbd "M-c i") 'outline-up-heading)
|
|
(define-key outline-mode-map (kbd "M-c j") 'org-backward-heading-same-level)
|
|
(define-key outline-mode-map (kbd "M-c l") 'org-forward-heading-same-level)
|
|
(define-key outline-mode-map (kbd "M-c n") 'outline-next-visible-heading)
|
|
(define-key outline-mode-map (kbd "M-c p") 'outline-previous-visible-heading)
|
|
(setq org-M-RET-may-split-line 'nil)
|
|
(add-hook 'org-mode-hook 'org-display-inline-images)
|
|
|
|
;;;; Ace Jump mode
|
|
(require 'ace-jump-mode)
|
|
;(define-key global-map (kbd "C-c SPC") 'ace-jump-mode)
|
|
(define-key evil-normal-state-map (kbd "M-SPC") 'ace-jump-mode)
|
|
(global-set-key (kbd "M-SPC") 'ace-jump-mode)
|
|
|
|
;;;; launch-files
|
|
(require 'launch)
|
|
(add-hook 'dired 'turn-on-launch-mode)
|
|
(global-set-key (kbd "M-l") 'launch-files-dired)
|
|
|
|
;;;; 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)
|
|
|
|
;;;; Helm
|
|
(require 'helm-config)
|
|
(require 'helm-grep)
|
|
(global-set-key (kbd "C-c h") 'helm-mode)
|
|
(define-key helm-map (kbd "C-h") 'backward-delete-char)
|
|
(define-key helm-map (kbd "C-w") 'backward-kill-word)
|
|
(global-set-key (kbd "M-x") 'helm-M-x)
|
|
(global-set-key (kbd "<menu>") 'helm-M-x)
|
|
;(helm-mode 1)
|
|
(global-set-key (kbd "C-c C-h") 'helm-command-prefix)
|
|
(global-set-key (kbd "C-x cl") 'count-lines-page)
|
|
(global-set-key (kbd "C-x cf") 'make-frame)
|
|
;(global-set-key (kbd "C-x cw") 'count-words-region)
|
|
;; stop making helm tab-complete in ERC
|
|
(setq helm-mode-no-completion-in-region-in-modes 'erc-mode)
|
|
(add-to-list 'helm-mode-no-completion-in-region-in-modes 'erc-mode)
|
|
(setq helm-mode-handle-completion-in-region 'nil)
|
|
|
|
;;;; Ediff stuff
|
|
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
|
|
|
|
;;;; ERC
|
|
;(setq erc-log-channels-directory "~/.emacs.d/erc/logs/")
|
|
;(setq erc-log-write-after-insert t)
|
|
;(erc-fill-mode 'nil)
|
|
(require 'erc)
|
|
(define-key erc-mode-map (kbd "M-c c") 'erc-iswitchb)
|
|
(define-key erc-mode-map (kbd "M-c x") 'erc-track-switch-buffer)
|
|
;(define-key erc-mode-map (kbd "TAB") 'completion-at-point)
|
|
;(erc-fill-mode -1)
|
|
;(add-hook 'erc-join-hook (lambda () (erc-fill-mode -1)))
|
|
|
|
;;;; fullscreen-mode
|
|
(require 'fullscreen-mode)
|
|
(fullscreen-mode 1)
|
|
|
|
;;;; magit
|
|
(require 'magit)
|
|
(global-set-key (kbd "C-x m") 'magit-status)
|
|
(define-key magit-mode-map (kbd "C-n") 'next-line)
|
|
(define-key magit-mode-map (kbd "C-p") 'previous-line)
|
|
|
|
;;;; markdown-mode
|
|
(require 'markdown-mode)
|
|
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))
|
|
|
|
;;;; mic-paren
|
|
(require 'mic-paren)
|
|
(paren-activate)
|
|
|
|
;;;; paredit-mode
|
|
(require 'paredit)
|
|
(add-hook 'emacs-lisp-mode-hook 'turn-off-evil-mode)
|
|
(add-hook 'lisp-mode-hook 'turn-off-evil-mode)
|
|
(add-hook 'scheme-mode-hook 'turn-off-evil-mode)
|
|
(add-hook 'inferior-scheme-mode-hook 'turn-off-evil-mode)
|
|
|
|
(add-hook 'emacs-lisp-mode-hook 'paredit-mode)
|
|
(add-hook 'lisp-mode-hook 'paredit-mode)
|
|
(add-hook 'scheme-mode-hook 'paredit-mode)
|
|
(add-hook 'inferior-scheme-mode-hook 'paredit-mode)
|
|
|
|
(global-set-key (kbd "C-x C-p") 'paredit-mode)
|
|
(define-key paredit-mode-map (kbd "C-p") 'paredit-backward-down)
|
|
(define-key paredit-mode-map (kbd "C-n") 'paredit-forward-up)
|
|
(define-key paredit-mode-map (kbd "C-b") 'paredit-backward)
|
|
(define-key paredit-mode-map (kbd "C-f") 'paredit-forward)
|
|
(define-key paredit-mode-map (kbd "C-u") 'paredit-backward-up)
|
|
(define-key paredit-mode-map (kbd "C-d") 'paredit-forward-down)
|
|
(define-key comint-mode-map (kbd "C-d") 'paredit-forward-down)
|
|
|
|
(define-key paredit-mode-map (kbd "M-b") 'backward-char)
|
|
(define-key paredit-mode-map (kbd "M-f") 'forward-char)
|
|
(define-key paredit-mode-map (kbd "M-p") 'previous-line)
|
|
(define-key paredit-mode-map (kbd "M-n") 'next-line)
|
|
(define-key paredit-mode-map (kbd "M-u") 'paredit-kill-0)
|
|
(define-key paredit-mode-map (kbd "M-d") 'paredit-forward-delete)
|
|
|
|
(define-key paredit-mode-map (kbd "C-M-b") 'backward-word)
|
|
(define-key paredit-mode-map (kbd "C-M-f") 'forward-word)
|
|
(define-key paredit-mode-map (kbd "C-M-u") 'upcase-word)
|
|
(define-key paredit-mode-map (kbd "C-M-d") 'paredit-forward-kill-word)
|
|
(define-key paredit-mode-map (kbd "C-M-p") nil)
|
|
(define-key paredit-mode-map (kbd "C-M-n") nil)
|
|
(define-key comint-mode-map (kbd "C-M-p") 'comint-previous-input)
|
|
(define-key comint-mode-map (kbd "C-M-n") 'comint-next-input)
|
|
|
|
(define-key paredit-mode-map (kbd "M-w") 'paredit-copy-as-kill)
|
|
(define-key paredit-mode-map (kbd "C-h") 'paredit-backward-delete)
|
|
(define-key paredit-mode-map (kbd "C-w") 'paredit-backward-kill-word)
|
|
|
|
;;;; quack
|
|
;(require 'quack)
|
|
|
|
;;;; recentf
|
|
(require 'recentf)
|
|
(recentf-mode 1)
|
|
(setq recentf-max-menu-items 500)
|
|
(setq recentf-max-saved-items nil)
|
|
(setq recentf-save-file "/home/anon/.emacs.d/recentf")
|
|
(global-set-key "\C-x\ \C-r" 'recentf-open-files)
|
|
|
|
;;;; Session.el
|
|
(require 'session)
|
|
(add-hook 'after-init-hook 'session-initialize)
|
|
|
|
;;;; SLIME
|
|
(require 'slime)
|
|
;(slime-setup '(slime-fancy slime-banner))
|
|
(setq inferior-lisp-program "/usr/bin/sbcl")
|
|
|
|
;;;; smartparens
|
|
;; (require 'smartparens)
|
|
;; (add-hook 'scheme-mode-hook 'smartparens-mode)
|
|
|
|
;;;; stumpwm-mode
|
|
(require 'stumpwm-mode)
|
|
|
|
;;;; sudo-edit
|
|
(require 'sudo-edit)
|
|
|
|
;;;; text size change
|
|
(set-face-attribute 'default nil :font "-outline-Bitstream Vera Sans Mono-normal-normal-normal-mono-12-*-*-*-c-*-iso8859-1")
|
|
|
|
;;;; Win-switch
|
|
(require 'win-switch)
|
|
(global-set-key "\C-xo" 'win-switch-dispatch)
|
|
(win-switch-setup-keys-ijkl)
|
|
(setq win-switch-idle-time 0.5)
|
|
(setq win-switch-other-window-first nil)
|
|
;(setq win-switch-other-window-first nil)
|
|
|
|
;;;; window-numbering
|
|
(require 'window-numbering)
|
|
(window-numbering-mode 1)
|
|
|
|
;;;; yafolding.el
|
|
(require 'yafolding)
|
|
(add-hook 'prog-mode-hook
|
|
(lambda () (yafolding-mode)))
|
|
|
|
;;;; Here be customize dragons
|
|
(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.
|
|
'(LilyPond-command-alist
|
|
(quote
|
|
(("LilyPond" "lilypond %s" "%s" "%l" "View")
|
|
("2PS" "lilypond -f ps %s" "%s" "%p" "ViewPS")
|
|
("Book" "lilypond-book %x" "%x" "%l" "LaTeX")
|
|
("LaTeX" "latex '\\nonstopmode\\input %l'" "%l" "%d" "ViewDVI")
|
|
("View" "zathura %f")
|
|
("ViewPS" "gv --watch %p")
|
|
("Midi" "")
|
|
("MidiAll" ""))))
|
|
'(LilyPond-pdf-command "zathura")
|
|
'(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"])
|
|
'(compilation-message-face (quote default))
|
|
'(completion-styles (quote (partial-completion basic emacs22)))
|
|
'(custom-safe-themes
|
|
(quote
|
|
("3cd28471e80be3bd2657ca3f03fbb2884ab669662271794360866ab60b6cb6e6" "47160226d9b534d26067fcfb07f6bc1ea5922d9caafd29536c1a212e1cef571b" "f0ea6118d1414b24c2e4babdc8e252707727e7b4ff2e791129f240a2b3093e32" "bf4097b29a98d5653e10a97cf3436c6b57dfb4750be6b083ca353fea06efe2be" "57f8801351e8b7677923c9fe547f7e19f38c99b80d68c34da6fa9b94dc6d3297" "5d9351cd410bff7119978f8e69e4315fd1339aa7b3af6d398c5ca6fac7fd53c7" "70cf411fbf9512a4da81aa1e87b064d3a3f0a47b19d7a4850578c8d64cac2353" "e35ef4f72931a774769da2b0c863e11d94e60a9ad97fb9734e8b28c7ee40f49b" "96efbabfb6516f7375cdf85e7781fe7b7249b6e8114676d65337a1ffe78b78d9" "4aee8551b53a43a883cb0b7f3255d6859d766b6c5e14bcb01bed572fcbef4328" "d809ca3cef02087b48f3f94279b86feca896f544ae4a82b523fba823206b6040" "a507b9ca4a605d5256716da70961741b9ef9ec3246041a4eb776102e8df18418" "2affb26fb9a1b9325f05f4233d08ccbba7ec6e0c99c64681895219f964aac7af" "65ae93029a583d69a3781b26044601e85e2d32be8f525988e196ba2cb644ce6a" "0795e2c85394140788d72d34969be4acb305e4a54149e7237787d9df27832fbb" "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" "47bff723f2aca3a9a5726abcc52a7cc4192b556dd80b3f773589994d2ed24d16" "013e87003e1e965d8ad78ee5b8927e743f940c7679959149bbee9a15bd286689" "ad9fc392386f4859d28fe4ef3803585b51557838dbc072762117adad37e83585" "1011be33e9843afd22d8d26b031fbbb59036b1ce537d0b250347c19e1bd959d0" "784d5ee4d33befba6a21702ead67f98346770be7cc17ab64952ae3866a403743" "930a202ae41cb4417a89bc3a6f969ebb7fcea5ffa9df6e7313df4f7a2a631434" "0e121ff9bef6937edad8dfcff7d88ac9219b5b4f1570fd1702e546a80dba0832" "442c946bc5c40902e11b0a56bd12edc4d00d7e1c982233545979968e02deb2bc" "e16a771a13a202ee6e276d06098bc77f008b73bbac4d526f160faa2d76c1dd0e" "9eb5269753c507a2b48d74228b32dcfbb3d1dbfd30c66c0efed8218d28b8f0dc" "c4e6fe8f5728a5d5fd0e92538f68c3b4e8b218bcfb5e07d8afff8731cc5f3df0" "c739f435660ca9d9e77312cbb878d5d7fd31e386a7758c982fa54a49ffd47f6e" "97a2b10275e3e5c67f46ddaac0ec7969aeb35068c03ec4157cf4887c401e74b1" "024b0033a950d6a40bbbf2b1604075e6c457d40de0b52debe3ae994f88c09a4a" default)))
|
|
'(debug-on-error nil)
|
|
'(diary-entry-marker (quote font-lock-variable-name-face))
|
|
'(dired-listing-switches "-ahl --group-directories-first --time-style=long-iso")
|
|
'(erc-fill-mode nil)
|
|
'(erc-generate-log-file-name-function (quote erc-generate-log-file-name-network))
|
|
'(erc-log-channels-directory "~/.emacs.d/erc/logs/")
|
|
'(erc-log-mode t)
|
|
'(erc-log-write-after-insert t)
|
|
'(erc-modules
|
|
(quote
|
|
(autojoin completion list log menu ring stamp ercn netsplit button match track readonly networks noncommands irccontrols move-to-prompt)))
|
|
'(erc-nick
|
|
(quote
|
|
("contrapunctus" "HisaoNakai" "[Batou]" "[Togusa]" "[2501]")))
|
|
'(erc-stamp-mode t)
|
|
'(erc-timestamp-format-left "
|
|
[%Y %m %e %T %N]
|
|
")
|
|
'(erc-timestamp-format-right nil)
|
|
'(fci-rule-character-color "#452E2E")
|
|
'(gnus-logo-colors (quote ("#0d7b72" "#adadad")))
|
|
'(helm-completing-read-handlers-alist
|
|
(quote
|
|
((describe-function . helm-completing-read-symbols)
|
|
(describe-variable . helm-completing-read-symbols)
|
|
(debug-on-entry . helm-completing-read-symbols)
|
|
(find-function . helm-completing-read-symbols)
|
|
(find-tag . helm-completing-read-with-cands-in-buffer)
|
|
(ffap-alternate-file)
|
|
(tmm-menubar)
|
|
(completon-at-point . f))))
|
|
'(highlight-changes-colors (quote ("#FD5FF0" "#AE81FF")))
|
|
'(highlight-tail-colors
|
|
(quote
|
|
(("#49483E" . 0)
|
|
("#67930F" . 20)
|
|
("#349B8D" . 30)
|
|
("#21889B" . 50)
|
|
("#968B26" . 60)
|
|
("#A45E0A" . 70)
|
|
("#A41F99" . 85)
|
|
("#49483E" . 100))))
|
|
'(session-registers (quote (t 45 61 92 96 region (97 . 122))))
|
|
'(session-use-package t nil (session))
|
|
'(syslog-debug-face
|
|
(quote
|
|
((t :background unspecified :foreground "#A1EFE4" :weight bold))))
|
|
'(syslog-error-face
|
|
(quote
|
|
((t :background unspecified :foreground "#F92672" :weight bold))))
|
|
'(syslog-hour-face (quote ((t :background unspecified :foreground "#A6E22E"))))
|
|
'(syslog-info-face
|
|
(quote
|
|
((t :background unspecified :foreground "#66D9EF" :weight bold))))
|
|
'(syslog-ip-face (quote ((t :background unspecified :foreground "#E6DB74"))))
|
|
'(syslog-su-face (quote ((t :background unspecified :foreground "#FD5FF0"))))
|
|
'(syslog-warn-face
|
|
(quote
|
|
((t :background unspecified :foreground "#FD971F" :weight bold))))
|
|
'(weechat-color-list
|
|
(quote
|
|
(unspecified "#272822" "#49483E" "#A20C41" "#F92672" "#67930F" "#A6E22E" "#968B26" "#E6DB74" "#21889B" "#66D9EF" "#A41F99" "#FD5FF0" "#349B8D" "#A1EFE4" "#F8F8F2" "#F8F8F0")))
|
|
'(yafolding-ellipsis-content "
|
|
..."))
|
|
(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.
|
|
'(magit-item-highlight ((t nil))))
|
|
|
|
(put 'downcase-region 'disabled nil)
|