Ctrl-s hang terminal emulator?
I came across a sentence in vimdoc:
Note: CTRL-S does not work on all terminals and might block
further input, use CTRL-Q to get going again.
and this key indeed hangs my vim. I was thinking that it was the fault of vim,
since there was no problem when I use C-s
/C-x C-s
in emacs nox. However
just now when I was reading a manpage and pressed the Ctrl-s
, it hangs man
as well(I am setting less
as the PAGER).
So can someone tell me what's happening?
The terminal emulators are xterm
and lxterminal
, and tty
also
has this problem. And a Ctrl+q puts the process right again in all the cases.
terminal vim emacs keyboard-shortcuts man
|
show 2 more comments
I came across a sentence in vimdoc:
Note: CTRL-S does not work on all terminals and might block
further input, use CTRL-Q to get going again.
and this key indeed hangs my vim. I was thinking that it was the fault of vim,
since there was no problem when I use C-s
/C-x C-s
in emacs nox. However
just now when I was reading a manpage and pressed the Ctrl-s
, it hangs man
as well(I am setting less
as the PAGER).
So can someone tell me what's happening?
The terminal emulators are xterm
and lxterminal
, and tty
also
has this problem. And a Ctrl+q puts the process right again in all the cases.
terminal vim emacs keyboard-shortcuts man
6
This might be a stupid question but you didn't mention what you have tried in your question. You triedC-q
to re-enable scrolling, right?
– h3rrmiller
Apr 11 '13 at 15:40
2
@h3rrmiller yeah, that's right. But I just would like to know whyctrl-s
cause the process to hang.
– Hongxu Chen
Apr 11 '13 at 15:41
before there were keyboards with the scroll lock keyC-s
andC-q
were the old days "scroll lock toggle". you can disable this functionality by addingstty ixany
andstty ixoff -ixon
to your.bashrc
– h3rrmiller
Apr 11 '13 at 15:42
2
This is a nowadays stupid historical setting in terminal emulators; see this related question for how to fix your terminal.
– Ingo Karkat
Apr 11 '13 at 15:45
1
@IngoKarkat I wouldn't say it's stupid... I still use it from time to time
– h3rrmiller
Apr 11 '13 at 15:57
|
show 2 more comments
I came across a sentence in vimdoc:
Note: CTRL-S does not work on all terminals and might block
further input, use CTRL-Q to get going again.
and this key indeed hangs my vim. I was thinking that it was the fault of vim,
since there was no problem when I use C-s
/C-x C-s
in emacs nox. However
just now when I was reading a manpage and pressed the Ctrl-s
, it hangs man
as well(I am setting less
as the PAGER).
So can someone tell me what's happening?
The terminal emulators are xterm
and lxterminal
, and tty
also
has this problem. And a Ctrl+q puts the process right again in all the cases.
terminal vim emacs keyboard-shortcuts man
I came across a sentence in vimdoc:
Note: CTRL-S does not work on all terminals and might block
further input, use CTRL-Q to get going again.
and this key indeed hangs my vim. I was thinking that it was the fault of vim,
since there was no problem when I use C-s
/C-x C-s
in emacs nox. However
just now when I was reading a manpage and pressed the Ctrl-s
, it hangs man
as well(I am setting less
as the PAGER).
So can someone tell me what's happening?
The terminal emulators are xterm
and lxterminal
, and tty
also
has this problem. And a Ctrl+q puts the process right again in all the cases.
terminal vim emacs keyboard-shortcuts man
terminal vim emacs keyboard-shortcuts man
edited Apr 11 '13 at 17:05
Michael Mrozek♦
61.6k29192211
61.6k29192211
asked Apr 11 '13 at 15:35
Hongxu ChenHongxu Chen
2,04451624
2,04451624
6
This might be a stupid question but you didn't mention what you have tried in your question. You triedC-q
to re-enable scrolling, right?
– h3rrmiller
Apr 11 '13 at 15:40
2
@h3rrmiller yeah, that's right. But I just would like to know whyctrl-s
cause the process to hang.
– Hongxu Chen
Apr 11 '13 at 15:41
before there were keyboards with the scroll lock keyC-s
andC-q
were the old days "scroll lock toggle". you can disable this functionality by addingstty ixany
andstty ixoff -ixon
to your.bashrc
– h3rrmiller
Apr 11 '13 at 15:42
2
This is a nowadays stupid historical setting in terminal emulators; see this related question for how to fix your terminal.
– Ingo Karkat
Apr 11 '13 at 15:45
1
@IngoKarkat I wouldn't say it's stupid... I still use it from time to time
– h3rrmiller
Apr 11 '13 at 15:57
|
show 2 more comments
6
This might be a stupid question but you didn't mention what you have tried in your question. You triedC-q
to re-enable scrolling, right?
– h3rrmiller
Apr 11 '13 at 15:40
2
@h3rrmiller yeah, that's right. But I just would like to know whyctrl-s
cause the process to hang.
– Hongxu Chen
Apr 11 '13 at 15:41
before there were keyboards with the scroll lock keyC-s
andC-q
were the old days "scroll lock toggle". you can disable this functionality by addingstty ixany
andstty ixoff -ixon
to your.bashrc
– h3rrmiller
Apr 11 '13 at 15:42
2
This is a nowadays stupid historical setting in terminal emulators; see this related question for how to fix your terminal.
– Ingo Karkat
Apr 11 '13 at 15:45
1
@IngoKarkat I wouldn't say it's stupid... I still use it from time to time
– h3rrmiller
Apr 11 '13 at 15:57
6
6
This might be a stupid question but you didn't mention what you have tried in your question. You tried
C-q
to re-enable scrolling, right?– h3rrmiller
Apr 11 '13 at 15:40
This might be a stupid question but you didn't mention what you have tried in your question. You tried
C-q
to re-enable scrolling, right?– h3rrmiller
Apr 11 '13 at 15:40
2
2
@h3rrmiller yeah, that's right. But I just would like to know why
ctrl-s
cause the process to hang.– Hongxu Chen
Apr 11 '13 at 15:41
@h3rrmiller yeah, that's right. But I just would like to know why
ctrl-s
cause the process to hang.– Hongxu Chen
Apr 11 '13 at 15:41
before there were keyboards with the scroll lock key
C-s
and C-q
were the old days "scroll lock toggle". you can disable this functionality by adding stty ixany
and stty ixoff -ixon
to your .bashrc
– h3rrmiller
Apr 11 '13 at 15:42
before there were keyboards with the scroll lock key
C-s
and C-q
were the old days "scroll lock toggle". you can disable this functionality by adding stty ixany
and stty ixoff -ixon
to your .bashrc
– h3rrmiller
Apr 11 '13 at 15:42
2
2
This is a nowadays stupid historical setting in terminal emulators; see this related question for how to fix your terminal.
– Ingo Karkat
Apr 11 '13 at 15:45
This is a nowadays stupid historical setting in terminal emulators; see this related question for how to fix your terminal.
– Ingo Karkat
Apr 11 '13 at 15:45
1
1
@IngoKarkat I wouldn't say it's stupid... I still use it from time to time
– h3rrmiller
Apr 11 '13 at 15:57
@IngoKarkat I wouldn't say it's stupid... I still use it from time to time
– h3rrmiller
Apr 11 '13 at 15:57
|
show 2 more comments
2 Answers
2
active
oldest
votes
This feature is called Software Flow Control (XON/XOFF flow control)
When one end of the data link (in this case the terminal emulator) can't receive any more data (because the buffer is full or nearing full or the user sends C-s
) it will send an "XOFF" to tell the sending end of the data link to pause until the "XON" signal is received.
What is happening under the hood is the "XOFF" is telling the TTY driver in the kernel to put the process that is sending data into a sleep state (like pausing a movie) until the TTY driver is sent an "XON" to tell the kernel to resume the process as if it were never stopped in the first place.
C-s
enables terminal scroll lock. Which prevents your terminal from scrolling (By sending an "XOFF" signal to pause the output of the software).
C-q
disables the scroll lock. Resuming terminal scrolling (By sending an "XON" signal to resume the output of the software).
This feature is legacy (back when terminals were very slow and did not allow scrolling) and is enabled by default.
To disable this feature you need the following in either ~/.bash_profile
or ~/.bashrc
:
stty -ixon
10
Actually I think it goes at last as far back as the 70's, if not the 60's.
– Keith
Apr 11 '13 at 18:17
However it seems not working on Ubuntu 16.04.
– Robert
Nov 23 '17 at 2:32
"stty -ixon" <----- this is one of the most important things I've read on the internet in the last week. thank you.
– Brad P.
Jan 23 at 13:08
Actually, the history of this starts several decades earlier than 80's. See The TTY demystified.
– RoboAlex
Feb 4 at 8:41
add a comment |
At the end of my .bashrc
script I have added:
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
stty -ixon
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f72086%2fctrl-s-hang-terminal-emulator%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
This feature is called Software Flow Control (XON/XOFF flow control)
When one end of the data link (in this case the terminal emulator) can't receive any more data (because the buffer is full or nearing full or the user sends C-s
) it will send an "XOFF" to tell the sending end of the data link to pause until the "XON" signal is received.
What is happening under the hood is the "XOFF" is telling the TTY driver in the kernel to put the process that is sending data into a sleep state (like pausing a movie) until the TTY driver is sent an "XON" to tell the kernel to resume the process as if it were never stopped in the first place.
C-s
enables terminal scroll lock. Which prevents your terminal from scrolling (By sending an "XOFF" signal to pause the output of the software).
C-q
disables the scroll lock. Resuming terminal scrolling (By sending an "XON" signal to resume the output of the software).
This feature is legacy (back when terminals were very slow and did not allow scrolling) and is enabled by default.
To disable this feature you need the following in either ~/.bash_profile
or ~/.bashrc
:
stty -ixon
10
Actually I think it goes at last as far back as the 70's, if not the 60's.
– Keith
Apr 11 '13 at 18:17
However it seems not working on Ubuntu 16.04.
– Robert
Nov 23 '17 at 2:32
"stty -ixon" <----- this is one of the most important things I've read on the internet in the last week. thank you.
– Brad P.
Jan 23 at 13:08
Actually, the history of this starts several decades earlier than 80's. See The TTY demystified.
– RoboAlex
Feb 4 at 8:41
add a comment |
This feature is called Software Flow Control (XON/XOFF flow control)
When one end of the data link (in this case the terminal emulator) can't receive any more data (because the buffer is full or nearing full or the user sends C-s
) it will send an "XOFF" to tell the sending end of the data link to pause until the "XON" signal is received.
What is happening under the hood is the "XOFF" is telling the TTY driver in the kernel to put the process that is sending data into a sleep state (like pausing a movie) until the TTY driver is sent an "XON" to tell the kernel to resume the process as if it were never stopped in the first place.
C-s
enables terminal scroll lock. Which prevents your terminal from scrolling (By sending an "XOFF" signal to pause the output of the software).
C-q
disables the scroll lock. Resuming terminal scrolling (By sending an "XON" signal to resume the output of the software).
This feature is legacy (back when terminals were very slow and did not allow scrolling) and is enabled by default.
To disable this feature you need the following in either ~/.bash_profile
or ~/.bashrc
:
stty -ixon
10
Actually I think it goes at last as far back as the 70's, if not the 60's.
– Keith
Apr 11 '13 at 18:17
However it seems not working on Ubuntu 16.04.
– Robert
Nov 23 '17 at 2:32
"stty -ixon" <----- this is one of the most important things I've read on the internet in the last week. thank you.
– Brad P.
Jan 23 at 13:08
Actually, the history of this starts several decades earlier than 80's. See The TTY demystified.
– RoboAlex
Feb 4 at 8:41
add a comment |
This feature is called Software Flow Control (XON/XOFF flow control)
When one end of the data link (in this case the terminal emulator) can't receive any more data (because the buffer is full or nearing full or the user sends C-s
) it will send an "XOFF" to tell the sending end of the data link to pause until the "XON" signal is received.
What is happening under the hood is the "XOFF" is telling the TTY driver in the kernel to put the process that is sending data into a sleep state (like pausing a movie) until the TTY driver is sent an "XON" to tell the kernel to resume the process as if it were never stopped in the first place.
C-s
enables terminal scroll lock. Which prevents your terminal from scrolling (By sending an "XOFF" signal to pause the output of the software).
C-q
disables the scroll lock. Resuming terminal scrolling (By sending an "XON" signal to resume the output of the software).
This feature is legacy (back when terminals were very slow and did not allow scrolling) and is enabled by default.
To disable this feature you need the following in either ~/.bash_profile
or ~/.bashrc
:
stty -ixon
This feature is called Software Flow Control (XON/XOFF flow control)
When one end of the data link (in this case the terminal emulator) can't receive any more data (because the buffer is full or nearing full or the user sends C-s
) it will send an "XOFF" to tell the sending end of the data link to pause until the "XON" signal is received.
What is happening under the hood is the "XOFF" is telling the TTY driver in the kernel to put the process that is sending data into a sleep state (like pausing a movie) until the TTY driver is sent an "XON" to tell the kernel to resume the process as if it were never stopped in the first place.
C-s
enables terminal scroll lock. Which prevents your terminal from scrolling (By sending an "XOFF" signal to pause the output of the software).
C-q
disables the scroll lock. Resuming terminal scrolling (By sending an "XON" signal to resume the output of the software).
This feature is legacy (back when terminals were very slow and did not allow scrolling) and is enabled by default.
To disable this feature you need the following in either ~/.bash_profile
or ~/.bashrc
:
stty -ixon
edited Feb 12 at 19:33
answered Apr 11 '13 at 16:23
h3rrmillerh3rrmiller
9,31542238
9,31542238
10
Actually I think it goes at last as far back as the 70's, if not the 60's.
– Keith
Apr 11 '13 at 18:17
However it seems not working on Ubuntu 16.04.
– Robert
Nov 23 '17 at 2:32
"stty -ixon" <----- this is one of the most important things I've read on the internet in the last week. thank you.
– Brad P.
Jan 23 at 13:08
Actually, the history of this starts several decades earlier than 80's. See The TTY demystified.
– RoboAlex
Feb 4 at 8:41
add a comment |
10
Actually I think it goes at last as far back as the 70's, if not the 60's.
– Keith
Apr 11 '13 at 18:17
However it seems not working on Ubuntu 16.04.
– Robert
Nov 23 '17 at 2:32
"stty -ixon" <----- this is one of the most important things I've read on the internet in the last week. thank you.
– Brad P.
Jan 23 at 13:08
Actually, the history of this starts several decades earlier than 80's. See The TTY demystified.
– RoboAlex
Feb 4 at 8:41
10
10
Actually I think it goes at last as far back as the 70's, if not the 60's.
– Keith
Apr 11 '13 at 18:17
Actually I think it goes at last as far back as the 70's, if not the 60's.
– Keith
Apr 11 '13 at 18:17
However it seems not working on Ubuntu 16.04.
– Robert
Nov 23 '17 at 2:32
However it seems not working on Ubuntu 16.04.
– Robert
Nov 23 '17 at 2:32
"stty -ixon" <----- this is one of the most important things I've read on the internet in the last week. thank you.
– Brad P.
Jan 23 at 13:08
"stty -ixon" <----- this is one of the most important things I've read on the internet in the last week. thank you.
– Brad P.
Jan 23 at 13:08
Actually, the history of this starts several decades earlier than 80's. See The TTY demystified.
– RoboAlex
Feb 4 at 8:41
Actually, the history of this starts several decades earlier than 80's. See The TTY demystified.
– RoboAlex
Feb 4 at 8:41
add a comment |
At the end of my .bashrc
script I have added:
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
stty -ixon
add a comment |
At the end of my .bashrc
script I have added:
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
stty -ixon
add a comment |
At the end of my .bashrc
script I have added:
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
stty -ixon
At the end of my .bashrc
script I have added:
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
stty -ixon
answered Apr 11 '13 at 16:17
Stephane RollandStephane Rolland
1,71532437
1,71532437
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f72086%2fctrl-s-hang-terminal-emulator%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
6
This might be a stupid question but you didn't mention what you have tried in your question. You tried
C-q
to re-enable scrolling, right?– h3rrmiller
Apr 11 '13 at 15:40
2
@h3rrmiller yeah, that's right. But I just would like to know why
ctrl-s
cause the process to hang.– Hongxu Chen
Apr 11 '13 at 15:41
before there were keyboards with the scroll lock key
C-s
andC-q
were the old days "scroll lock toggle". you can disable this functionality by addingstty ixany
andstty ixoff -ixon
to your.bashrc
– h3rrmiller
Apr 11 '13 at 15:42
2
This is a nowadays stupid historical setting in terminal emulators; see this related question for how to fix your terminal.
– Ingo Karkat
Apr 11 '13 at 15:45
1
@IngoKarkat I wouldn't say it's stupid... I still use it from time to time
– h3rrmiller
Apr 11 '13 at 15:57