Disable terminal default ctrl-s behavior so it can be used for save. #933
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Solution for #638
Terminal emulators typically "freeze" the terminal on ctrl-s and continue on ctrl-q. You can run
stty -ixon
in your terminal or add it to your .bashrc or similar to disable this behavior on ctrl-s. If not disabled, users of bpython can't use ctrl-s to save their session.I think we should do the equivalent of this for users automatically. I would guess that more users are annoyed by it but never report than users that want to use scroll control in bpython. I don't think this default behavior of ctrl-s/ctrl-q is very useful in bpython, especially since our output is much slower than
python
. However ptpython has a similar issue that it also chooses not to automatically fix.Hitting F7 is a workaround that opens the current session in a text editor, from which you can save it with a new name. Saving without changing the name saves to a temporary file and re-executes the modified session.
Note that the say that the way Curtsies implements this behavior is not by turning off this terminal feature (
-ixon
and-ixoff
) but rather by making ctrl-s and ctrl-q no longer do these things.