IME 변환: Enter 키가 입력 확인 대신 메시지 전송을 트리거함

중국어 입력기(IME)를 사용하여 영어 문자를 입력할 때 버그가 발생합니다(예: IME를 끄지 않은 채로 단어를 입력하는 경우). 일반적으로 Enter 키를 누르면 "후보어를 선택하지 않고 버퍼의 내용을 바로 입력"하는 의미입니다. 그러나 채팅 인터페이스에서는 이 동작이 "메시지 보내기"로 해석되어 이 버그가 발생합니다.

기대되는 동작:

  • 사용자가 중국어 IME를 사용하여 영어 문자를 입력합니다(예: “hello” 입력)
  • IME가 후보어 목록을 표시합니다
  • 사용자가 Enter 키를 눌러 후보어를 선택하지 않고 원래 입력한 문자를 확정하기를 기대합니다

실제 동작:

  • Enter 키가 채팅 인터페이스에 의해 캡처되어 “메시지 보내기” 기능이 즉시 트리거됩니다
  • 이로 인해 IME 버퍼의 내용이 잘못 전송되거나, 불완전한 메시지가 전송됩니다

근본 원인:

이것은 두 레벨 간의 키보드 단축키 충돌입니다:

  1. IME 레벨: Enter = 현재 입력(조성) 확정
  2. 애플리케이션 레벨: Enter = 메시지 보내기

채팅 애플리케이션이 IME의 "조성 상태(composition state)"를 적절히 처리하지 않아, IME가 아직 입력을 처리하는 중에 Enter 키 이벤트를 가로채고 있습니다.


이 버그의 동영상 데모/재현입니다:

Enter 키를 누를 때마다 새로운 메시지가 전송됩니다.

1개의 좋아요

제 커뮤니티의 한 사용자가 이 문제를 해결한 Userscript를 게시했는데, 도움이 될 수 있습니다: https://linux.do/t/topic/670477/17

환경설정을 "Ctrl + Enter로 전송"으로 변경하면 도움이 될까요? 그러면 더 쉬운 우회 방법이 될 수 있습니다.

Meta에서는 https://meta.discourse.org/my/preferences/chat에서 해당 설정을 찾을 수 있습니다.

1개의 좋아요

병합되면 이 문제가 해결될 것입니다:

예를 들어 google.com에서도 시도해 보았는데, 첫 번째 선택지는 enter 키로 작동하지 않으며, 작동하려면 1 키를 사용해야 합니다.

2개의 좋아요

이 주제는 마지막 답변 후 7일이 지나면 자동으로 닫힙니다. 더 이상 새로운 답변을 남길 수 없습니다.