diff options
| author | Jack Jamison <jackqjamison@gmail.com> | 2026-07-05 01:19:30 -0400 |
|---|---|---|
| committer | Jack Jamison <jackqjamison@gmail.com> | 2026-07-05 01:19:30 -0400 |
| commit | bdf9a71ab7baa2b1de9abcfd5df1a9107a55d141 (patch) | |
| tree | c4524e6c41aa5107211103401dabfaefc81aa882 /.config/emacs/lisp/evil-collection/modes/ielm/evil-collection-ielm.el | |
| parent | fe3984f541bd32bdfa418afb305b614176b55ca0 (diff) | |
add a bunch of emacs packages HELP
Diffstat (limited to '.config/emacs/lisp/evil-collection/modes/ielm/evil-collection-ielm.el')
| -rw-r--r-- | .config/emacs/lisp/evil-collection/modes/ielm/evil-collection-ielm.el | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/.config/emacs/lisp/evil-collection/modes/ielm/evil-collection-ielm.el b/.config/emacs/lisp/evil-collection/modes/ielm/evil-collection-ielm.el new file mode 100644 index 0000000..0883bb6 --- /dev/null +++ b/.config/emacs/lisp/evil-collection/modes/ielm/evil-collection-ielm.el @@ -0,0 +1,60 @@ +;;; evil-collection-ielm.el --- Bindings for `ielm' -*- lexical-binding: t -*- + +;; Copyright (C) 2026 Ian Pan <ianpan870102@gmail.com> + +;; Author: Ian Pan <ianpan870102@gmail.com> +;; Maintainer: Ian Pan <ianpan870102@gmail.com> +;; URL: https://github.com/emacs-evil/evil-collection +;; Version: 0.0.1 +;; Package-Requires: ((emacs "26.3")) +;; Keywords: evil, ielm, tools + +;; 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: +;;; Bindings for `ielm' (Inferior Emacs Lisp Mode). + +;;; Code: +(require 'evil-collection) +(require 'ielm nil t) + +(defvar inferior-emacs-lisp-mode-map) +(defconst evil-collection-ielm-maps '(inferior-emacs-lisp-mode-map)) + +(defcustom evil-collection-ielm-move-cursor-back nil + "Whether the cursor is moved backwards when exiting insert state." + :type 'boolean + :group 'ielm) + +(defun evil-collection-ielm-escape-stay () + "Go back to normal state but don't move cursor backwards. +Moving cursor backwards is the default vim behavior but +it is not intuitive for some cases like REPL buffers." + (setq-local evil-move-cursor-back + evil-collection-ielm-move-cursor-back)) + +;;;###autoload +(defun evil-collection-ielm-setup () + "Set up `evil' bindings for `ielm'." + (evil-set-initial-state 'inferior-emacs-lisp-mode 'insert) + + (add-hook 'ielm-mode-hook #'evil-collection-ielm-escape-stay) + + (let* ((submit evil-collection-repl-submit-state)) + (evil-collection-define-key submit 'inferior-emacs-lisp-mode-map + (kbd "RET") #'ielm-return + (kbd "<return>") #'ielm-return))) + +(provide 'evil-collection-ielm) +;;; evil-collection-ielm.el ends here |
