vimdoc에서 한 문장을 보았습니다.
Note: CTRL-S does not work on all terminals and might block
further input, use CTRL-Q to get going again.
그리고이 열쇠는 실제로 내 vim을 중단시킵니다. emacs nox에서 C-s
/ C-x C-s
를 사용할 때 아무런 문제가 없었기 때문에 이것이 vim의 잘못이라고 생각했습니다 . 그러나 지금 나는 맨 페이지를 읽고을 누를 때 Ctrl-s
, 그것은 중단 man
뿐만 아니라 (내가 설정하고 less
호출기로).
그래서 누군가 무슨 일이 일어나고 있는지 말해 줄 수 있습니까?
터미널 에뮬레이터는 xterm
과 lxterminal
하고, tty
이 문제가 있습니다. 그리고 Ctrl+ q는 모든 경우에 프로세스를 다시 올바르게 설정합니다.
답변
이 기능을 소프트웨어 흐름 제어 (XON / XOFF 흐름 제어)라고합니다.
데이터 링크의 한 쪽 끝 (이 경우 터미널 에뮬레이터)이 더 이상 데이터를 수신 할 수없는 경우 (버퍼가 가득 찼거나 거의 다 찼거나 사용자 C-s
가 전송하기 때문에) “XOFF”를 보내서 전송 끝을 알려줍니다. “XON”신호가 수신 될 때까지 일시 정지 할 데이터 링크.
“XOFF”는 커널에서 TTY 드라이버에게 TTY 드라이버에게 “XON”메시지가 전송 될 때까지 데이터를 보내는 프로세스 (동영상 일시 정지 등)를 대기 상태로 전환하도록 지시하는 것입니다. 프로세스가 처음부터 중지되지 않은 것처럼 커널을 다시 시작합니다.
C-s
터미널 스크롤 잠금을 활성화합니다. 터미널이 스크롤되는 것을 방지합니다 ( “XOFF”신호를 전송하여 소프트웨어 출력을 일시 중지 함).
C-q
스크롤 잠금을 비활성화합니다. 터미널 스크롤링 재개 ( “XON”신호를 전송하여 소프트웨어 출력을 재개함으로써)
이 기능은 레거시 (터미널이 매우 느리고 스크롤을 허용하지 않은 경우)이며 기본적으로 활성화되어 있습니다.
이 기능을 비활성화하려면 ~/.bash_profile
또는에 다음이 필요합니다 ~/.bashrc
.
stty -ixon
답변
내 .bashrc
스크립트 의 끝에 나는 다음을 추가했다.
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
stty -ixon