diff options
Diffstat (limited to '.emacs.d/init.el')
-rw-r--r-- | .emacs.d/init.el | 57 |
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")) |