gui
gui copied to clipboard
Ctrl + Shift + Z does not perform redo
It appears that CtrlY is used as the hotkey for redo. This is an antiquated keybinding that is rarely used in modern times, because CtrlShiftZ is more ergonomic and consistent. DrRacket does not respect CtrlShiftZ keypresses, and it instead types the capital Z character. When that character is typed, it wipes out all redo history(!!!!!). That is the worst type of user experience violation because it destroys work (the user's redo history that they were intending to get back to). It is fine to keep CtrlY, but CtrlShiftZ should be added as a default mapping in the software so it can be consistent with virtually all modern programs and user expectations and to avoid destroying the user's work.
Is this a Windows-specific issue? I'm using DrRacket 7.5 on macOS and CtrlShiftZ performs redo.
It's an issue on both of my Windows 10 computers (also running DrRacket 7.5). I was wondering if it was perhaps bound to Alt/Cmd instead of Ctrl but it seems not to be the case. CtrlY is the only way I can find from my experimentation to redo. Everything else just types the letter "Z" and wipes out the redo history in the process.
The most recent versions of the Windows user interface guidelines that I can find continue to recommend Ctrl-Y as the "redo" command. Here are the web pages I could find:
https://support.microsoft.com/en-us/help/12445/windows-keyboard-shortcuts https://docs.microsoft.com/en-us/windows/uwp/design/input/keyboard-interactions#accelerators
With that said, it wouldn't be hard to change, if C;S;z is really the "new standard." Is there a good source for information on this?
Also, I'm slightly mystified by your comment about erasing redo history; I would expect any keystroke other than "redo" to erase the redo history. Can you illustrate the sequence of actions you would expect to experience after undoing several times and then hitting a key other than redo?
Finally, in case it isn't already clear: you can reconfigure the keybindings on your own machine, as shown in this section of the documentation.
https://docs.racket-lang.org/drracket/Keyboard_Shortcuts.html?q=keybindings#%28part._defining-shortcuts%29
Thanks for your comments!
For reference, this discussion for a similar issue in the Notepad++ editor goes into extra detail about why this is necessary. Microsoft's user interface guidelines are outdated on this topic, and Microsoft themselves support both options in most of their software (such as Visual Studio, VS Code, and more). Adding CtrlShiftZ does not replace CtrlY, it makes both perform as needed and protects the user from unintentionally destroying their redo history by hitting the unsupported redo key out of habit and ergonomic muscle memory.