Skip to content

pyrepl on Windows: add Ctrl+← and Ctrl+→ word-skipping and other keybindings #128388

Description

@paulie4

Feature or enhancement

Proposal:

Currently, _pyrepl/windows_console.py is very limited compared to _pyrepl/unix_console.py, for example, it doesn't support the Ctrl+← and Ctrl+→ word-skipping keybindings (see also #119248) nor any of the keybindings that use meta (i.e. Alt), e.g. to kill-word or backward-kill-word.

This is extra-annoying given the fact that the previous Python REPL did support Ctrl+←andCtrl+→` word-skipping keybindings in Windows, i.e. before pyrepl was used for Python 3.13.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Linked PRs

Activity

  1. zooba commented on Jan 1, 2025

    @zooba
    Member

    Considering this is one of the reasons that I disable the new REPL entirely, it might be justifiable to treat this as a bug?

    I don't particularly mind not having the new REPL, which is why I haven't spent the time to try and fix it. But you could argue that it's not fit for purpose if I'm just turning the whole thing off.

  2. added a commit that references this issue on Jan 10, 2025
  3. encukou commented on Jan 10, 2025

    @encukou
    Member

    To me this sounds very much like a new feature.
    Do you want to ask the RM for an exception to backport it?

  4. paulie4 commented on Jan 10, 2025

    @paulie4
    ContributorAuthor

    I'm sure there are many of us that use Ctrl+Backspace in Windows and have come to expect that to delete a word, and since that used to work in Python REPL but no longer does, that's why it is a regression and therefore feels like it should be considered a bug. In fact, I can't think of a single application in Windows that I use that doesn't support Ctrl+Backspace to delete a word (besides the new Python 3.13+ REPL).

    Yes, please! It would be great if this fix goes into both Python 3.14.x and 3.13.x. BTW, the single code file that was edited in #128389 has the exact same code in the main and 3.13 branches, so backporting should be very easy.

  5. zooba commented on Jan 10, 2025

    @zooba
    Member

    I agree it's a regression. When disabling the feature adds functionality, it's hard to call that functionality "new".

  6. paulie4 commented on Feb 2, 2025

    @paulie4
    ContributorAuthor

    @encukou, any chance this could get into a 3.13.x release?

  7. encukou commented on Feb 3, 2025

    @encukou
    Member

    IMO, that's a question for the release manager. @Yhg1s?

    It might need some kind of a blanket decision, there are several more issues that might be classified as regressions.

  8. Yhg1s commented on Feb 3, 2025

    @Yhg1s
    Member

    Yeah, I think clear regressions in user-visible behaviour in the interactive interpreter are worth considering for backport. Whether they're suitable depends on how invasive and risky the changes are. The fix for this issue seems fine to backport to me.

  9. added a commit that references this issue on Feb 24, 2025
  10. added a commit that references this issue on Mar 3, 2025
  11. encukou commented on Mar 3, 2025

    @encukou
    Member

    Thank you for the fix, @paulie4!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-windowstopic-replRelated to the interactive shelltype-featureA feature request or enhancement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions