summaryrefslogtreecommitdiffstats
path: root/.emacs.d/init.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/init.el')
-rw-r--r--.emacs.d/init.el57
1 files changed, 50 insertions, 7 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index 061be7f..29dbbc9 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -318,6 +318,13 @@ MODE1 is enabled and vice-versa."
(when (fboundp 'prettify-symbols-mode)
(prettify-symbols-mode arg)))
+(defun oni:maybe-switch-to-normal-state ()
+ "Switch the current buffer to normal state.
+
+Only do this when the mode is not in emacs state by default."
+ (unless (memql major-mode (oni:modes-starting-in 'emacs))
+ (evil-normal-state)))
+
(defun oni:mini-fix-timestamp-string (date-string)
"A minimal version of Xah Lee's `fix-timestamp-string'.
Turn DATE-STRING into something else that can be worked with in
@@ -354,6 +361,10 @@ extracts the parts I want to know about."
(format "[%s - %s]" band title))
song)))
+(defun oni:modes-starting-in (state)
+ "Get a list of the modes whose default state is STATE."
+ (symbol-value (evil-state-property state :modes)))
+
(defun oni:move-beginning-of-dwim ()
"Move to beginning of line either after indentation or before."
(interactive)
@@ -400,6 +411,18 @@ PLIST contains all the pertinent information."
(c-set-offset 'arglist-close '0)
(setq-local fci-rule-column 80))
+(defun oni:print-keymap (keymap)
+ "Recursively print KEYMAP with keys as characters."
+ (mapcar (lambda (itm)
+ (if (consp itm)
+ (if (integerp (car itm))
+ (cons (format "%c" (car itm))
+ (if (listp (cdr itm))
+ (oni:print-keymap (cddr itm))
+ (cdr itm)))
+ itm)
+ itm)) keymap))
+
(defun oni:prog-mode-func ()
"Function for `prog-mode-hook'."
(setq-local comment-auto-fill-only-comments t))
@@ -624,7 +647,7 @@ For `python-mode' I prefer `python-imenu-create-flat-index'."
(ignore frame)
(unless setp
;; (load-theme 'yoshi t)
- (load-theme 'monokai t)
+ (load-theme 'yoshi t)
;; (smt/enable)
;; (require 'my-smt)
;; (smt/set-theme 'my-smt)
@@ -997,6 +1020,12 @@ from myaethon2.core.decorators import (
(add-to-list 'eshell-output-filter-functions #'eshell-truncate-buffer))
(stante-after evil
+ (evil-define-operator oni:evil-sort-operator (beg end)
+ "Sort text."
+ :move-point nil
+ :type line
+ (sort-lines nil beg end))
+
(mapc (lambda (mode) (evil-set-initial-state mode 'emacs))
'(jabber-roster-mode grep-mode avandu-overview-mode
avandu-article-mode gnus-summary-mode
@@ -1004,9 +1033,12 @@ from myaethon2.core.decorators import (
magit-status-mode magit-key-mode
sql-interactive-mode Info-mode
jabber-chat-mode diff-mode prodigy-mode
- calculator-mode messages-buffer-mode))
- (setq evilnc-hotkey-comment-operator ",")
- (require 'evil-nerd-commenter))
+ calculator-mode messages-buffer-mode
+ help-mode))
+ (evil-set-initial-state 'git-commit-mode 'normal)
+ (require 'evil-nerd-commenter)
+ (define-key evil-normal-state-map ",s" 'oni:evil-sort-operator)
+ (add-hook 'before-save-hook #'oni:maybe-switch-to-normal-state))
(stante-after eww
(setq eww-download-path ; Don't go to ~/Downloads
@@ -1048,7 +1080,9 @@ from myaethon2.core.decorators import (
(mapc (lambda (c) (delq c flycheck-checkers))
'(python-pylint python-pyflakes))
(setf flycheck-highlighting-mode 'columns)
- (require 'flycheck-commit-check))
+ (require 'flycheck-commit-check)
+ (setq flycheck-display-errors-function
+ #'flycheck-pos-tip-error-messages))
(stante-after geiser-repl
(setq geiser-repl-history-filename "~/.emacs.d/geiser-history"))
@@ -1061,6 +1095,8 @@ from myaethon2.core.decorators import (
(stante-after grep
(add-to-list 'grep-find-ignored-directories "migrations")
(add-to-list 'grep-find-ignored-directories "vendor")
+ (add-to-list 'grep-find-ignored-directories "tmp")
+ (add-to-list 'grep-find-ignored-directories "log")
(add-to-list 'grep-find-ignored-files "TAGS"))
(stante-after help-at-pt
@@ -1075,7 +1111,9 @@ from myaethon2.core.decorators import (
(setq ido-auto-merge-work-directories-length -1)
(setq ido-default-buffer-method 'pop-to-buffer)
(setq ido-max-window-height 1)
- (setq ido-save-directory-list-file nil))
+ (setq ido-save-directory-list-file nil)
+ (setq ido-enable-flex-matching t)
+ (setq ido-use-faces nil))
(stante-after imenu
(setq imenu-auto-rescan t))
@@ -1401,6 +1439,10 @@ from myaethon2.core.decorators import (
(global-set-key (kbd "M-x") 'smex)
(global-set-key (kbd "\"") 'oni:self-insert-dwim)
(global-set-key [remap move-beginning-of-line] #'oni:move-beginning-of-dwim)
+(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
+(global-set-key (kbd "M-+") 'mc/mark-next-like-this)
+(global-set-key (kbd "M--") 'mc/mark-previous-like-this)
+(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)
;;;; Misc modes
@@ -1425,7 +1467,8 @@ from myaethon2.core.decorators import (
(popwin-mode)
(evil-mode)
- (require 'colemak-evil))
+ (require 'colemak-evil)
+ (global-evil-surround-mode))
(when (equal system-name "drd")
(load "eap-autoloads"))