다른 언어의 키보드 레이아웃을 전환하는 방법은 무엇입니까?


11

Q : 비표준 키보드 레이아웃을 사용할 때 다른 언어의 입력 방법을 어떻게 전환합니까?

두 가지 언어로 텍스트를 편집해야합니다. 물론 버퍼에 텍스트를 삽입 할 때를 제외하고 두 언어에서 키 바인딩을 사용할 수 있기를 원합니다. 대체 언어를 선택 toggle-input-method( C-\)하고 선택할 수있는 것 같습니다 .

지금까지는 거의 훌륭합니다.

문지름은 다음과 같습니다. 나는 영어 수준의 Dvorak 레이아웃을 사용하는데, 이는 OS 수준에서 설정합니다 (예 :) setxkbmap. I toggle-input-method인 경우 QWERTY 레이아웃 (미국 표준)이 있으면 삽입하는 텍스트가 정확하지만 Dvorak을 사용하기 때문에 횡설수설로 나타납니다. (FWIW, 레이아웃을 표준 미국으로 전환하면 정상적으로 작동합니다.)

그래서 : Evors에게 Dvorak을 사용하고 있다는 것을 어떻게 알 수toggle-input-method 있습니까? 그래서 친구는 내 키 누르기를 다른 언어의 올바른 문자로 번역합니까?


swedish-postfix 및 기타 구성 입력 방법이 저에게 효과적입니다. 어떤 방법으로 문제가 있습니까?
shapr

@ shapr : 영어와 아랍어를 바꾸고 있습니다. 문제는 OS 수준에서 표준 미국 레이아웃을 사용할 때 토글 링이 제대로 작동하므로 OS 수준에서 Dvorak 레이아웃을 사용하고있는 것 같습니다.
Dan

답변:


7

을 설정하여 입력 방법의 물리적 레이아웃 정의를 변경하는 방법이 있습니다 quail-keyboard-layout-type. 그러나 Dvorak은 quail-keyboard-layout-alist내 Emacs 24.4에서 가능한 후보 중 하나가 아닙니다 .

quail-keyboard-layout-alistin의 정의를보고 새 실제 키보드 레이아웃을 정의 quail.el하거나 Dvorak 레이아웃에 해당하는 아랍어 키를 정의하여 새 입력 방법을 만들 수 있습니다.

나는 처음에는 경험이 없지만 두 번째 접근법이 생각보다 쉽다는 것을 간증 할 수 있습니다. (I는 페르시아어의 상단에 오스만 터키어 입력 방법을 만들어야했습니다.) 복사 arabic.el(이 내 데비안 시스템에 상주에서 /usr/share/emacs/24.4/lisp/leim/quail/arabic.el.gz) 집에 site-lisp와 환경에 따라 키를 변경합니다. 또한 입력 방법 이름 등을 변경하는 것을 잊지 마십시오. 방금 새로운 Dvorak-Arabic 입력 방법을 만들었습니다.

복잡한 것으로 보이면 자세한 내용으로 답변을 업데이트 할 수 있습니다.


감사합니다! 그것은 나를 올바른 길로 이끌었습니다. ...-alist버전 에 어떻게 도달했는지 설명하는 추가 답변을 게시 할 것 입니다.
Dan

천만에요. 업데이트 quail-. *-alist를 Emacs 개발 에 제출할 수도 있습니다 . 다른 Dvorak 사용자가 도움이 될 것이라고 확신합니다.
Emre Sahin

7

@EmreSahin 은이 질문에 대답하기 위해 올바른 길을갔습니다. 그래서 다른 사람이 이와 같은 문제를 처리 해야하는 경우를 대비하여 조금 자세하게 설명하고 있습니다.

Emre가 지적했듯이에 Dvorak 레이아웃을 추가해야합니다 quail-keyboard-layout-alist. 그것은 밝혀 quail라이브러리가에 잘 설명되어 있지 않습니다 매뉴얼 이 개 관련 기능이 하나 개의 노드에 통과에서 언급되는.

그러나이 도움말 스레드 , 특히 Dvorak 이있는 러시아어EmacsWiki 페이지 (이 답변이 요람이 있음)를 참조한 후에, 나는 그것을 이해했다고 생각합니다.

변수의 docstring은 quail-keyboard-layout우리가 무엇을 넣어야하는지 설명합니다 quail-keyboard-layout-alist. 각각 15 개의 키로 구성된 6 행에 해당하는 긴 문자열입니다. 각 행은 각 키의 이동 및 이동 값에 해당하며 행당 총 30 자입니다. 다음 사항에 대해서는 잘 모르겠지만 4 줄의 키가있는 "반 표준"키보드라고 부르는 첫 번째와 여섯 번째 행은 각각 30 개의 공백이 있어야합니다.

큰 공개 :

(require 'quail)

(add-to-list 'quail-keyboard-layout-alist
             `("dvorak" . ,(concat "                              "
                                   "  1!2@3#4$5%6^7&8*9(0)[{]}`~  "
                                   "  '\",<.>pPyYfFgGcCrRlL/?=+    "
                                   "  aAoOeEuUiIdDhHtTnNsS-_\\|    "
                                   "  ;:qQjJkKxXbBmMwWvVzZ        "
                                   "                              ")))

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