Skip to content

fix(default): restore evil-paste-pop in comint#8691

Open
kovan wants to merge 1 commit into
doomemacs:masterfrom
kovan:fix/comint-paste-pop
Open

fix(default): restore evil-paste-pop in comint#8691
kovan wants to merge 1 commit into
doomemacs:masterfrom
kovan:fix/comint-paste-pop

Conversation

@kovan

@kovan kovan commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Restores evil-paste-pop / evil-paste-pop-next functionality in comint-derived buffers (shell-mode, REPLs, etc.)
  • evil-collection overrides C-p/C-n in normal state, breaking paste cycling after p/P
  • Adds a conditional dispatch that checks last-command to choose between paste-pop and comint history navigation

Fix: #3602

Test plan (verified)

  • Open a shell buffer (M-x shell)
  • Verify C-p in normal state was bound to comint-previous-input (the bug)
  • After fix, verify C-p dispatches to evil-paste-pop when last command was a paste, and comint-previous-input otherwise

All steps verified via emacsclient -e against a running Doom Emacs daemon with :editor evil +everywhere enabled.

Buttercup unit test included and passes.


  • I searched the issue tracker and this hasn't been PRed before.
  • My changes are not on the do-not-PR list for this project.
  • My commits conform to Doom's git conventions.
  • I am blindly checking these off.
  • This PR contains AI-generated work.
  • Any relevant issues or PRs have been linked to.
  • This a draft PR; I need more time to finish it.

🤖 Generated with Claude Code

evil-collection overrides C-p/C-n in comint-derived buffers (shell,
REPLs), preventing evil-paste-pop from cycling the kill ring after a
paste. This adds a conditional dispatch that checks `last-command' to
choose between paste-pop and comint history navigation.

Fix: doomemacs#3602

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@kovan kovan requested a review from a team as a code owner February 26, 2026 14:31
@hlissner hlissner added is:bug Something isn't working as intended :editor evil Pertains to Doom's :editor evil module :term eshell Pertains to Doom's :term eshell module :term term Pertains to Doom's :term term module :term vterm Pertains to Doom's :term vterm module :term shell Pertains to Doom's :term shell module re:evil For users with evil/vim emulation enabled labels Mar 6, 2026
@hlissner hlissner added this to the modules v26.04 milestone Mar 6, 2026
@hlissner hlissner added the was:moved Is, was, or will be addressed elsewhere label Mar 6, 2026
@hlissner hlissner removed the is:bug Something isn't working as intended label Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:editor evil Pertains to Doom's :editor evil module re:evil For users with evil/vim emulation enabled :term eshell Pertains to Doom's :term eshell module :term shell Pertains to Doom's :term shell module :term term Pertains to Doom's :term term module :term vterm Pertains to Doom's :term vterm module was:moved Is, was, or will be addressed elsewhere

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use evil-paste-pop instead comint-previous-input on terminals (inf-ruby-mode, shell-mode, etc)

2 participants