거의 사용되지 않는 키보드 레이아웃이 있고, 내 특정 레이아웃에 확실히 최적화되지 않은 것들이 많이 있습니다. 프로그램의 단축키를 변경하고 싶지만 다른 사람들에게도 도움이 되기를 바랍니다. 키보드에서 j 키를 눌러 문자를 반환받는 방법이 있습니까?
특히 vi(neovim)에서 어떤 문자가 커서를 움직이게 하는지 다시 매핑하고 싶습니다(이것은 단지 jkgh 등일 뿐이며 수정자는 없습니다). Qwerty로 전환해야 하는 경우 나 자신을 위해 모든 것을 망치고 싶지 않습니다.
답변1
아니요.
WASD두 가지 모두 의 문제점 HJKL은 발명가가 특정 키보드 레이아웃을 사용했다는 사실에 크게 의존한다는 것입니다. 아니요, 정확히 개선할 수는 없습니다.
물론 X 서버와 KVT에서 X 및 커널 VT 키맵을 읽을 수 있습니다. 또는 최소한 다양한 구성 파일을 읽어서 어떤 키맵을 먼저 입력했는지 알 수 있습니다. 하지만 이것은 단지 당신에게만 알려줄 뿐입니다.키 코드어떤 캐릭터가 생산되는지. 이는 유선을 통해 해당 키 코드를 생성하는 키의 물리적 위치를 알려주지 않습니다.
따라서 추측할 수 있는 가장 좋은 것은 (예를 들어) fr.kbd
키맵을 사용할 때(FreeBSD 이름 사용) WASD유선을 통해 전달된 키코드가 ZQSD애플리케이션에서 보는 것과 같다는 것입니다. 그러나 실제 키보드에서 키가 실제로 원하는 모양을 형성하는지 알 방법이 없습니다.
왜냐하면:
키보드는 네트워크를 통해 이 정보를 제공할 수 없습니다. 키보드 내부에는 마이크로프로세서가 물리적 매트릭스를 USB HID 사용 또는 PS/2 스캔 코드로 변환하고 이를 유선으로 전송하는 데 사용하는 내부 맵이 있습니다. 표준 형식이 없으며 호스트는 키보드에서 읽을 수 없습니다.
몇 가지 예:
- 키보드 제조업체가 숫자 키패드 전체를 통과 가능하게 만들기로 결정했는지 알 수 있는 방법이 없습니다.키 Fn수정자일부 소형 노트북 키보드처럼 기본 영숫자 블록 내의 여러 열에 적용됩니다. 다른 곳의 숫자 키패드와 동일한 USB HID 사용 및 PS/2 스캔 코드가 회선을 통해 전송됩니다.
- 키는 일반적으로 ~#104키 Windows 키보드의 ISO 9995-1 위치 D13에 새겨져 있지만 105키, 106키, 107키 및 109키 Windows 키보드의 경우 C12 위치에 있습니다. 이러한 키의 물리적 이동은 호스트에 연결된 어느 곳에서도 표시되지 않습니다. 호스트가 수신합니다.같은 싱글USB HID 사용법 및 PS/2 스캔 코드.
- 에 가장 적합 WASD하고 HJKL, 키보드 자체의 스위치에 반응하여 키보드 측의 매트릭스를 다시 매핑한다는 아이디어는 가 WASD된다는 아이디어를 폭발시킵니다 ZQSD.
다소 아이러니하다
아이러니하게도 커서 다이아몬드 레이아웃은 Unix보다 더 오래되었습니다. 1966년 GE Datapro-760에는 현대의 다이아몬드 레이아웃과 정확히 일치하지 않는 커서 키가 있었지만 거의 비슷했습니다. 실제로 커서 키를 다이아몬드형, 정사각형 또는 단일 행 이외의 위치에 배치하는 키보드 제조업체가 거의 없기 때문에 이는 물리적 모양에 대한 보편적인 의존에 매우 가깝습니다.
안타깝게도 Bill Joy가 ADM 3A를 가지고 있었기 때문에 우리는 Unix에 있습니다. xe에 DEC VT52 또는 Beehive B100(둘 다 1976년에 소개되었지만 둘 다 커서 키가 있음)이 있었다면 아마도 지금은 다소 다른 vi 전통을 갖게 될 것이며 무엇이 무엇인지 알아내려고 노력하지 않을 것입니다. HJKL키보드 물리적 레이아웃에.
답변2
여기에서 읽을 수 있습니다:https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-지도 시간(1 부)
또는 다음과 같은 명령을 실행할 수 있습니다.
cat /dev/tty
실제 키를 누르면 키보드 드라이버가 키를 어떻게 인식하는지 확인할 수 있습니다.