aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-11-08Fix evil-up-paren for Emacs 31HEADmasterhiecaq
2025-09-29Fix evil-cleanup-insert-state in flyspell enabled bufferhiecaq
2025-09-29fix: Warning missing lexical-binding cookieJen-Chieh Shen
2025-08-12Fix keybinding typoTom Dalziel
2025-03-18Fix typoKARASZI István
2025-03-16Add sphinx.configuration key to .readthedocs.yamlAxel Forsman
See: https://about.readthedocs.com/blog/2024/12/deprecate-config-files-without-sphinx-or-mkdocs-config/
2025-03-02Use regular end-of-visual-line in evil-append-lineAxel Forsman
Fixes #1964
2025-02-27Fix g$ putting cursor on start of next visual lineAxel Forsman
Normal mode "g$" put the cursor on the start of the next visual line instead of the end of the current one. Fixes #1244, fixes #1963
2025-02-26Correct typos in evil-repeat.elCampbell Barton
2025-01-21Update speedbar keybindings mapMikhail Durmanov
2025-01-21Fix Emacs warningsNikolai Korolev
``` » Warning (comp): evil-vars.el:561:25: Warning: the function `evil-delete-backward-word' is not known to be defined. » Warning (comp): evil-vars.el:565:25: Warning: the function `evil-delete-backward-word' is not known to be defined. ```
2025-01-20Remove evil--ex-expressionAxel Forsman
As after-change-functions such as evil--ex-update are not guaranteed to run, this commit ensures evil-ex re-parses the final Ex command string instead of relying on evil--ex-expression. This makes the workaround in commit 6afd86bbc740f3008e91881f990bf346b31d3f0b (Fix for evil-ex-teardown, 2025-01-03) to not overwrite a shortcut in evil--ex-expression no longer necessary. Closes #1949
2025-01-16Add zH and zL keybindings for horizontal scrollingTom Dalziel
Add zS-left & zS-right too. They're not in vim, but seems like an oversight
2025-01-11ci: Test latest Emacs 29.4Jen-Chieh Shen
2025-01-11Fix touch screen gestures (e.g., scrolling) for Emacs 30Johann Klähn
Emacs 30 introduces improved touch-screen support (via the Android port), see “Touchscreen Events” in the Emacs Lisp reference manual: By default, touch screen gestures are not processed when a command is bound to `down-mouse-1` (as `evil-mouse-drag-region` is), as that is taken as an indication that touch input should be translated to `down-mouse-1` followed by mouse motion events. This change applies the `ignored-mouse-command` property to `evil-mouse-drag-region` that is also present on `mouse-drag-region` in Emacs 30. This has the effect that touch screen gestures are prioritized and mouse events are only emitted when no gesture was detected.
2025-01-11Allow `evil-undo` in visual state again (undo in region)fnussbaum
Undo in region can be very useful and is supported by all undo backends. Before #1888, `evil-undo` stayed in visual state, and I think restoring this behaviour should not negatively affect the fix for #1883.
2025-01-08Mark evil-shift-width safe as a local variableamnore
2025-01-05Fix for evil-ex-teardownTom Dalziel
Fixes #1949
2024-12-29Remove permanent-local-hook from evil-ex-teardownAxel Forsman
This commit fixes the following error: Error in minibuffer-exit-hook (evil-ex-teardown): (wrong-type-argument stringp nil)
2024-12-28Fix issue: No visible text when cursor is moved to the end of bufferJames Cherti
This pull request fixes an issue where using `(evil-goto-line nil)` to move the cursor to the end of the buffer would result in no visible text. This patch draws inspiration from the built-in `(end-of-buffer)` function, which does not exhibit the same issue as calling `(evil-goto-line nil)`. Closes #1938
2024-12-14Call evil--ex-update one last time in minibuffer teardownTom Dalziel
Fixes #1941
2024-12-12Account for large values of scroll-margin in evil-window-top+bottomTom Dalziel
2024-10-06Avoid loop in quoted listAxel Forsman
This commit circumvents the following byte compilation error: evil-commands.el:2644:2: Error: List contains a loop: (lower-right lower-left upper-left upper-right lower-right lower-left upper-left upper-right lower-right lower-left . #6) Resolves #1903
2024-09-15Miscellaneous minor changesStefan Monnier
* evil-common.el (evil-with-delay): Add comment for last change. * evil-macros.el (font-lock-add-keywords): Use the font-lock faces rather than their obsolete variables. * evil-ex.el (evil-ex-define-argument-type): Make sure the function arguments can be compiled. (evil-ex-init-shell-argument-completion): Don't let-bind `completion-at-point-functions` because hooks aren't just variables.
2024-09-15Replace uses of `defadvice` with `advice-add`Stefan Monnier
This either requires a dependency on the `nadvice` package, or bumping the minimum Emacs version to 24.4. I went with the `nadvice` package, but maybe bumping up to 24.4 would be better. * evil.el: Require `nadvice`. * evil-core.el (evil--advices): New var. (evil-mode): Use it instead of `ad-dis/enable`. (evil--advice-add): New function. (set-window-buffer, select-window, toggle-input-method, use-global-map): * evil-search.el (isearch-message-prefix, isearch-delete-char) (isearch-lazy-highlight-search): * evil-integration.el (keyboard-quit, wdired-change-to-dired-mode) (show-paren-function, quail-show-key, describe-char, ace-jump-done): Use `(evil--)advice-add` instead of `defadvice`. (preceding-sexp, pp-last-sexp): Remove old code for when `advice-add` is not available. * evil-repeat.el (evil--read-key-sequence-advice): Adapt to use in `advice-add`. (read-key-sequence, read-key-sequence-vector): Use `advice-add`. * evil-keybindings.el (elp-results): Use `advice-add` and move outside of `eval-after-load`.
2024-09-15evil-pkg.el: Remove fileStefan Monnier
This file is auto-generated from headers in `evil.el` anyway. * evil.el: Synchronize metadata with what was in `evil-pkg.el`. * .gitignore: Add `evil-pkg.el`. * Makefile (VERSION): Fetch the info from `evil.el`. (elpa-pkg.el): New rule to (re)generate the file. (elpa): Use it (not sure if EASK needs it, tho).
2024-08-10Fix pixel-scroll-precision-mode when point is on a blank lineSteven Allen
When in the point is on a blank line in normal state, scrolling down with `pixel-scroll-precision-mode` enabled "sticks" because Evil ends up invoking `line-move` in the `post-command-hook`. `line-move` resets vscroll to 0, which undoes the scroll if we scrolled less than a line. Specifically, `evil-normal-post-command` calls `evil-adjust-cursor` which calls `evil-move-end-of-line` which calls `move-end-of-line`, which finally calls `line-move`. This change avoids this issue by removing the call to `evil-move-end-of-line` entirely, instead relying on the `bolp` call in `evil-move-cursor-back`.
2024-07-21Remove unnecessary post-command hook runTom Dalziel
2024-07-21Fix: perf improvements broke macro repeatability. Restore it.Tom Dalziel
2024-07-17Bind all possible ex cmd abbreviationsTom Dalziel
Means that :de expands to delete
2024-07-16gI works in visual stateTom Dalziel
2024-07-12Add tests for multi-jumpTom Dalziel
2024-07-12Fix: Should not (evil-set-jump previous-pos) jump after evil-jump-forwardroxma
Steps to reproduce the issue: - Create files `a` `b` `c` with the following content: $ head a b c ==> a <== b I'm A ==> b <== c I'm B ==> c <== I'm C - Run `emancs a` to open bufer `a` - Press `gf` to jump to bufer `b` - Press `gf` to jump to bufer `c` - Press `C-o` to jump back to bufer `b` - Press `C-o` to jump back to bufer `a` - Press `C-i` to jump foward to bufer `b` - Press `C-i` to jump foward to bufer `c`, but the window stays with buffer unexpectedly.
2024-07-10gi works in visual line stateTom Dalziel
2024-07-10make C-w in ex, search, and eval match insert and replace (#1922)Lily
* make C-w in ex and search match insert and replace merely changed bindings and added a test * fix evil-delete-backward-word in ex test
2024-06-27Add :baddTom Dalziel
2024-06-19Combine after change calls during macro executionTom Dalziel
Also temporarily disable pre- and post-command hooks
2024-06-19Make combine-change-calls end more accurateTom Dalziel
2024-06-18Fix cursor colourfnussbaum
Fixes #502, fixes #1835. Refreshing the cursor when changing the evil state is only needed (or almost only, see below) when the current buffer is displayed in the selected window. If this is not the case, and the buffer is only displayed or its window selected at some later point in time, then `evil-refresh-cursor` will be called as part of the `window-configuration-change-hook` or as advice to `select-window`. However, this introduces the following tiny (and maybe acceptable?) regression: When doing something like ```elisp (with-current-buffer (some-buffer-displayed-in-another-window) (some-evil-state-with-a-different-cursor-type)) ``` the cursor will not be refreshed in the other window before selecting it. The cursor colour should indeed not be refreshed, because it is defined for the whole frame; however, the cursor type should in principle be changed, as it is defined per buffer and also defines the shape of the cursor in non-selected windows. There exist different ways to also handle this case, but they mostly seem ugly or needlessly complicated to me. I think the most elegant way to fix this would involve implementing per-buffer cursor colors in Emacs (as suggested in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24153d). What do you think?
2024-06-18Correct fix for combine-change-calls endTom Dalziel
2024-06-18Fix comp warning for goto-lineTom Dalziel
2024-06-17Add c-ts-mode to evil-jump-item c major modesTom Dalziel
Fixes #1908
2024-06-17Add :view and :sview ex commandsTom Dalziel
2024-06-17Use evil-first-non-blank instead of back-to-indentation for insertTom Dalziel
Improves consistency
2024-06-16Pause hooks and undos during blockwise (bulk) insertTom Dalziel
2024-06-16Record search offset for repeatTom Dalziel
Fixes #1907
2024-06-14Track (and restore) previous visual selection, point, mark for gvTom Dalziel
2024-06-14Only restore visual if there's something to restoreTom Dalziel
2024-06-03Ex-substitute: use last search's case-sensitivityTom Dalziel
2024-05-31Remove redundant z= binding from visual-state-mapTom Dalziel
visual-state-map inherits from normal-state map because normal is :enabled in visual's state definition, so this is unnecessary.