내가 만난 많은 Linux 배포판에서 셸에 붙여넣은 텍스트에는 백스페이스 문자가 포함됩니다. 이러한 문자를 붙여넣는 것이 방지되지 않는 이유는 무엇입니까? 아니면 이 기능이 몇 가지 유용한 기능을 제공합니까?
즉, Linux 셸은 붙여넣은 문자열인지 손으로 쓴 문자열인지 "인식"합니까?
이 행동을 처리하는 방법은 무엇입니까?
답변1
쉘은 터미널에서 실행되는 응용프로그램일 뿐입니다. 페이스트의 경우에만에뮬레이터관련되어 있지만 여전히 "실제" 터미널이 있습니다(힌트: Linux 콘솔은아니요중 하나).
다양한 콘솔 구현을 무시하면 텍스트 붙여넣기가 더 제한된 방식으로 수행되므로 X에서 실행되는 터미널이 질문의 초점입니다. 터미널 에뮬레이터는 일련의이벤트. 입력한 키나 붙여넣은 텍스트는 터미널 에뮬레이터에서 동일하게 보입니다.
터미널 에뮬레이터(및 그 사이의 선택/붙여넣기)만 생각하면 선택/붙여넣기가 터미널 창에 표시되는 내용을 처리할 수 있으므로 백스페이스는 문제가 되지 않습니다. 즉, 사용자가 터미널 창에서 텍스트를 선택하면 인쇄 가능한 텍스트만 선택할 수 있습니다(특별한 경우 탭 문자가 포함될 수 있음). 백스페이스 문자는 없습니다(누군가의 터미널 구현에 버그가 있는 경우 제외). 백스페이스는 터미널에 커서를 이동하라고 지시하기 때문입니다.왼쪽. 아니요인쇄 가능터미널에서 옵션을 제공하려면 왼쪽에 그대로 두세요. 가지다사용할 수 있는 수백 가지의 다른 터미널 컨트롤, 그러나 백스페이스 키는 간단하고 다용도로 사용할 수 있습니다.
백스페이스 키는 브라우저(실제로 인쇄 가능한 텍스트 표시를 제공해야 함)와 같이 제대로 구현되지 않은 응용 프로그램에서 발생하는 문제로, 스크립트 작성자가 결정한 내용을 화면 내용에 저장하는 것으로 보입니다.
그러니까... 물어보는 대신에터미널 에뮬레이터가 여전히 BS를 허용하는 이유, GUI 브라우저가 왜 이러한 동작을 허용하는지 묻는 사람이 있을 수 있습니다.