AFAIK emacs nie obsługuje keyup/keydown
tylko zdarzeń keypressed
. Przykładem konsekwencji jest to, że gdy chcemy oznaczyć region, musimy najpierw ustawić znak, set-mark-command
a następnie możemy zaznaczyć region, poruszając się wokół punktu. Chociaż jest to naprawdę interesująca funkcja, ponieważ nie trzeba przytrzymywać wciśniętego klawisza Shift podczas zaznaczania tekstu, czasem pożądane byłoby zachowanie takiego samego zachowania, jak w innych edytorach. To pytanie dotyczy zrozumienia, dlaczego emacs nie obsługuje tej funkcji i dlaczego uważa się ją za lepszą . Czy istnieje również ideologiczne podejście, w jaki sposób możemy rozwiązać ten problem w emacs?
9
Odpowiedzi:
Jak wynika z komentarzy z przyczyn historycznych, Emacs działa w terminalach, a urządzenia te są zorientowane na znaki - sekwencja bajtów nie jest gwarantowana, gdy dzieje się to na klawiaturze.
Dyskusje wskazują również, że można to zaimplementować w środowisku graficznym. Ale nikt tego nie interesował.
Należy pamiętać, że niektóre programy, takie jak gry lub oprogramowanie muzyczne, mogą używać szczegółowych informacji o tym, kiedy klawisz został naciśnięty, jak długo i kiedy jest zwolniony, ale edycja tekstu nie ma z nimi nic wspólnego.
Z instrukcji
(info "(elisp)Mouse Events")
:Zdarzenie zawisu może być emulowane przez bezczynny licznik czasu - analizując rzecz w punkcie po opóźnieniu.
źródło