emacs가 키 업 / 다운 이벤트를 지원하지 않는 이유


9

AFAIK emacs는 keyup/keydown이벤트 만 지원하지 않습니다 keypressed. 결과의 예는 영역을 표시하려는 경우 먼저 표시를 설정 한 set-mark-command다음 점 주위를 이동하여 영역을 표시 할 수 있다는 것입니다. 텍스트를 표시하는 동안 Shift 키를 누를 필요가 없기 때문에 이것은 실제로 흥미로운 기능이지만 다른 편집기와 동일한 동작을하는 것이 바람직 할 수 있습니다. 이 질문은 emacs가이 기능을 지원하지 않는 이유와 이것이 더 나은 이유를 이해하는 것 입니다. 또한 우리가 emacs에서 이것을 해결할 수있는 이데올로기 적 접근법이 있습니까?


6
Emacs는 터미널에서도 작동하며 키 업 / 다운 이벤트는 해당 환경에서 의미가 없습니다. 아마도 이러한 이벤트가 지원되지 않는 역사적인 이유 일 것입니다 . 그렇다고 해서 지원할 없다는 의미는 아닙니다 . 나는 아무도 그것을 귀찮게 할만 큼 시급한 필요성을 보지 못했다고 생각합니다.
Harald Hanche-Olsen

1
emacs에는 그래픽 환경 (글꼴, 마우스 이벤트 등)에서만 작동하는 다른 기능들도 있습니다.
샤프트

3
키 업 / 다운 이벤트를 시뮬레이트하여 키 다운시 파일을 미리 본 다음 키 업시 미리보기 버퍼를 닫는 코드가 작성되었습니다. emacs.stackexchange.com/questions/275/…
Jordon Biondo

3
[다른 텍스트 편집기를 사용하지 않습니다]는 어떤 "다른 편집기에서와 동일한 동작"입니까? 나머지 텍스트는 "shift + move to select"를 암시하는 것처럼 보이지만 이맥스에서 이미 지원됩니다.
Stefan

4
Emacs에는 이러한 주요 이벤트가 존재하지 않는 것이 맞지만 Emacs 교대 선택을 지원 한다는 점을 알아야합니다 (질문에 영감을 주었을 경우).
Malabarba

답변:


2

역사적 이유에 대한 의견에서 답변 한 것처럼 Emacs는 터미널에서 실행되며 해당 장치는 문자 지향적입니다. 키보드에서 이러한 일이 발생하면 보장하지 않고 바이트 시퀀스를 얻습니다.

토론은 또한 그래픽 환경을 위해 이것을 구현할 수 있다고 지적합니다. 그러나 아무도 그것에 관심이 없습니다.

게임이나 음악 소프트웨어와 같은 일부 프로그램은 키를 누를 때, 얼마나 오래, 언제 놓았는지에 대한 자세한 정보를 사용할 수 있지만 텍스트 편집은 이와 관련이 없습니다.

매뉴얼에서 (info "(elisp)Mouse Events"):

Emacs supports four kinds of mouse events:
click events, drag events, button-down events, and motion events.

호버 이벤트는 유휴 타이머를 통해 에뮬레이션 할 수 있습니다. 지연 후 지점에서 사물을 분석합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.