summaryrefslogtreecommitdiffstats
path: root/emacs
diff options
context:
space:
mode:
authorGravatar Tom Willemse2016-02-08 01:16:21 +0100
committerGravatar Tom Willemse2016-02-08 01:16:21 +0100
commitdb19187726a0aa218ea11a166dc6b8193cc9ac0f (patch)
treeca494c736ee2d13193cae4fc18e0d3ff965c0936 /emacs
parentae51a8c1bcfc36b17ec6a350768c38754dd7c97f (diff)
downloaddotfiles-db19187726a0aa218ea11a166dc6b8193cc9ac0f.tar.gz
dotfiles-db19187726a0aa218ea11a166dc6b8193cc9ac0f.zip
Revert "Remove evil settings"
This reverts commit c9cacdf23c4f2012d13ab0aaa1d426bb457f98c0.
Diffstat (limited to 'emacs')
-rw-r--r--emacs/.emacs.d/Cask3
-rw-r--r--emacs/.emacs.d/init.el49
2 files changed, 51 insertions, 1 deletions
diff --git a/emacs/.emacs.d/Cask b/emacs/.emacs.d/Cask
index 70c6e82..f4409b6 100644
--- a/emacs/.emacs.d/Cask
+++ b/emacs/.emacs.d/Cask
@@ -36,6 +36,9 @@
(depends-on "emms")
(depends-on "eshell-fringe-status" :git "git://github.com/ryuslash/eshell-fringe-status.git")
(depends-on "esxml")
+(depends-on "evil")
+(depends-on "evil-nerd-commenter")
+(depends-on "evil-surround")
(depends-on "eww-lnum")
(depends-on "expand-region")
(depends-on "feature-mode")
diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el
index ada6f3c..574054c 100644
--- a/emacs/.emacs.d/init.el
+++ b/emacs/.emacs.d/init.el
@@ -141,6 +141,17 @@ MODE1 is enabled and vice-versa."
"Set the `disabled' property for each item in FUNCTIONS to nil."
(mapc #'(lambda (f) (put f 'disabled nil)) functions))
+(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:modes-starting-in (state)
+ "Get a list of the modes whose default state is STATE."
+ (symbol-value (evil-state-property state :modes)))
+
;;;; Module-specific settings
(auto-init appt)
@@ -193,6 +204,11 @@ MODE1 is enabled and vice-versa."
(with-eval-after-load 'cc-mode
(define-key c-mode-map (kbd "<f9>") 'compile))
+(stante-after colemak-evil
+ (define-key evil-insert-state-map (kbd "C-g") #'evil-normal-state)
+ (define-key evil-replace-state-map (kbd "C-g") #'evil-normal-state)
+ (define-key evil-visual-state-map (kbd "C-g") #'evil-normal-state))
+
(stante-after compile
(setq compilation-scroll-output t))
@@ -255,6 +271,32 @@ MODE1 is enabled and vice-versa."
(add-to-list 'eshell-output-filter-functions 'oni:eshell-buttonize-url)
(add-to-list 'eshell-output-filter-functions #'eshell-truncate-buffer))
+(stante-after evil
+ (evil-define-operator oni:evil-sort-lines-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
+ gnus-article-mode gnus-group-mode
+ magit-status-mode magit-key-mode
+ sql-interactive-mode Info-mode
+ jabber-chat-mode diff-mode prodigy-mode
+ calculator-mode messages-buffer-mode
+ help-mode prodigy-view-mode eww-mode))
+ (evil-set-initial-state 'git-commit-mode 'insert)
+ (add-hook 'org-capture-mode-hook #'evil-insert-state)
+ (require 'evil-nerd-commenter)
+ (define-key evil-normal-state-map ",," 'evilnc-comment-operator)
+ (define-key evil-normal-state-map ",," 'evilnc-comment-operator)
+ (define-key evil-normal-state-map ",s" 'oni:evil-sort-lines-operator)
+ (add-hook 'before-save-hook #'oni:maybe-switch-to-normal-state)
+ (evil-declare-key 'motion org-mode-map (kbd "RET") #'org-return)
+ (evil-declare-key 'normal outline-minor-mode-map (kbd "TAB") #'oni:outline-toggle-entry))
+
(stante-after eww
(setq eww-download-directory ; Don't go to ~/Downloads
"~/downloads/"))
@@ -784,7 +826,12 @@ MODE1 is enabled and vice-versa."
(projectile-global-mode)
(hes-mode)
- (global-wakatime-mode))
+ (global-wakatime-mode)
+ (evil-mode)
+ (kill-local-variable 'mode-line-format)
+ (when (string-equal (system-name) "drd")
+ (require 'evil-colemak))
+ (global-evil-surround-mode))
(with-eval-after-load 'ruby
(global-rinari-mode))