Ctrl+S 키가 작동하지 않도록 하고 싶습니다

특정 툴을 사용하면서 사용하던 단축 키가 터미널에서 다른 의미로 사용되어 오동작을 하는 경우가 있습니다.

대표적인 키가 Ctrl+S이며 많은 윈도우 프로그램에서 저장의 단축키로 사용합니다.


Ctrl+S 키는 대부분의 유닉스/리눅스 터미널에서는 'stop' 신호로 작동하여 터미널에 문자를 출력하는 것을 중지합니다.

따라서 사용자는 서버와 접속이 끊겼다고 판단하여 터미널에 다시 접속하기도 합니다.

(Ctrl+S로 중지한 터미널 출력을 다시 시작하고자 할 경우 Ctrl+Q를 눌러 'start' 신호를 보내면 됩니다.)


Ctrl+S 키가 아예 작동하지 않도록 설정하고 싶을 때, 아래 두 가지의 해결책을 참고할 수 있습니다.


먼저, Xshell에서 Ctrl+S에 대해 사용자 정의 키를 지정하되 아무런 문자열을 할당하지 않도록 하는 방법입니다.

메뉴의 '도구 - 옵션 - 키보드와 마우스 - 키 매핑 - 편집 - 새로 만들기'에서 Ctrl+S를 문자열 보내기 키 동작으로 선택한 후 동작란에 아무런 문자열을 입력하지 않습니다.



다른 하나는 터미널에서 Ctrl+S에 해당하는 동작(stop)에 대한 키 할당을 다른 것으로 정의하는 것입니다.

터미널에서 이러한 키값들은 'stty -a' 명령으로 확인할 수 있고, 이들 키는 stty 명령으로 다시 정의할 수 있습니다.

stty stop ""

위 명령은 stop 신호에 어떠한 문자(키 값)도 할당하지 않도록 하는 명령입니다.

stty stop "^A"


위 명령은 Ctrl+A 키를 stop 신호에 할당하는 명령입니다. ^A는 Ctrl+V, Ctrl+A 키를 연속으로 눌러 나오는 하나의 문자입니다.

시스템에 따라서 Shift+6(^)와 A 두 개의 문자를 ""로 묶어 표시할 수도 있습니다.