2013-02-26 2 views
5

emacs 키 시퀀스 벡터 (예 : read-key-sequence-vector의 결과)를 사용자가 읽을 수있는 문자열로 변환하려면 어떻게해야합니까? 즉, 주어진 [7], 반환 'C - g'.키 시퀀스 벡터를 사용자가 읽을 수있는 문자열 표현으로 변환 하시겠습니까?

키 시퀀스를 비 벡터 형식 (즉, 사람이 읽을 수있는 형식)으로 표시하는 것뿐만 아니라 임의의 길이의 키 시퀀스 간의 동등성을 확인하는 신뢰할 수있는 방법이 필요합니다.

세부 사항을 위해, 내 함수는 다음을 수행해야합니다

  • 값 (문자열)에 keysequences의 해시 맵을 정의합니다. 키 시퀀스는 임의의 길이 (예 : "q" "w"3 ""4 ")를 가지며 이맥스의 키맵에 의해 한정되지 않습니다.
  • 버퍼의 사용자에게 매핑을 표시합니다 . 따라서 keysequences는 벡터 형식으로 수 없습니다 즉, 사용자가 이해할 수 있어야합니다.
  • 는, 사용자로부터 keysequence를 읽고 적절한 문자열을 반환합니다.

내가 사용할 수있는 두 가지 기능, 이 있습니다 read-key-sequence읽기 키 시퀀스 벡터 전자는 때로는 문자열로, 경우에 따라 벡터로 사용자의 입력 한 키 시퀀스를 반환합니다. 키 'one'에 대해 '1'을 반환하지만 때로는 [49]를 반환합니다. 이 예측할 수없는 동작으로 인해 평등을 테스트 할 수 없습니다.

후자는 벡터로 키를 반환합니다.이 코드는 사용자가 가능한 키 시퀀스를보아야하기 때문에 필자에게 유용하지 않습니다.

수동으로 현재 컴퓨터의 키보드에있는 모든 키의 맵 맵을 만들 수 있다고 가정합니다. 그러나 나는 이것이 다른 기계들에게 이식 가능하지 않다는 것을 두려워합니다.

답변

8
(key-description [7]) => "C-g" 
+0

감사합니다. 나는이 솔루션을 찾지 못했다고 생각했다. 분명히 더 깊이 검색해야합니다! – erjoalgo

관련 문제