내 컴퓨터의 설정에는 stty -a
다음과 같은 내용이 있습니다 erase = ^?; kill = ^U;
. 매뉴얼 페이지에서는 다음과 같이 보고합니다.
erase CHAR
CHAR will erase the last character typed
kill CHAR
CHAR will erase the current line
그러나 해당 키보드 단축키가 실제로 동일한 작업을 수행한다는 것을 발견했습니다. 즉, boo
터미널에 입력한 다음 <ctrl>+U
또는 를 누르면 <ctrl>+?
두 경우 모두 줄이 완전히 삭제됩니다.
그렇다면 문자를 지우면 마지막 문자만 지워지는 것이 아닌 이유는 무엇입니까?
답변1
방금 쉘 프롬프트에서 이것을 테스트했는데 비슷한 결과를 얻었습니다. 그러나 자세히 살펴보면 오류가 드러납니다.
ctrl+ /(ctrl-?라고 생각할 수도 있음)는 실제로 ctrl-_를 생성하는데, 이는 일반적으로 "실행 취소"에 바인딩됩니다. Ctrl-?을 원하시면 ctrl+ shift+ 를 눌러야 합니다 ?. ctrl++를 입력하여 v ctrl테스트 할 수 있습니다 ./
stty 명령은 실행 취소 키가 아무런 영향을 미치지 않는 "cooked" 모드의 터미널 편집에 영향을 미칩니다. 그래서 내 생각에는 stty 설정을 따를 수 있지만 반드시 그럴 필요는 없으며 더 멋진 편집 키를 많이 추가하는 자체 명령줄 편집을 구현하는 bash와 같은 셸을 사용하고 있는 것 같습니다.