This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+distribution/spacemacs-base/local/holy-mode/holy-mode.el
justbur 1d05f3887a holy-mode == (evil-mode -1)
The proper holy-mode (IMO). Simply disable evil-mode and reset the
cursor and mode-line settings.
2015-12-20 23:25:48 -05:00

60 lines
2 KiB
EmacsLisp

;;; holy-mode.el --- Enter the church of Emacs
;; Copyright (C) 2014-2015 syl20bnr
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; Keywords: convenience editing
;; Created: 18 Mar 2015
;; Version: 1.00
;; Package-Requires: ((emacs "24") (evil "1.0.9"))
;; URL: https://github.com/syl20bnr/spacemacs
;; This file is not part of GNU Emacs.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;; Code:
(defvar holy-mode-modes-to-disable-alist
`((evil-escape-mode . ,(when (boundp 'evil-escape-mode) evil-escape-mode)))
"Alist of modes that should be disabled when activating
`holy-mode'. The cdr in each cell stores the state of the mode
before it was disabled.")
;;;###autoload
(define-minor-mode holy-mode
"Global minor mode to repulse the evil from spacemacs.
The `insert state' is replaced by the `emacs state'."
:global t
:lighter " holy"
:group 'spacemacs
(if holy-mode
(progn
(evil-mode -1)
(dolist (mode holy-mode-modes-to-disable-alist)
(when (boundp (car mode))
(setcdr mode (symbol-value (car mode)))
(funcall (car mode) -1)))
(setq cursor-type 'box)
(set-cursor-color "SkyBlue2")
(when (fboundp 'spacemacs//helm-hjkl-navigation)
(spacemacs//helm-hjkl-navigation nil)))
(when (fboundp 'spacemacs//helm-hjkl-navigation)
(spacemacs//helm-hjkl-navigation t))
(evil-mode 1)))
(provide 'holy-mode)