Làm thế nào để chuyển đổi bố trí bàn phím cho các ngôn ngữ khác nhau?


10

H: làm cách nào để chuyển đổi giữa các phương thức nhập cho các ngôn ngữ khác nhau khi sử dụng bố cục bàn phím không chuẩn?

Tôi phải chỉnh sửa văn bản bằng hai ngôn ngữ khác nhau. Tôi muốn có thể sử dụng các phím bấm của mình trên hai ngôn ngữ, ngoại trừ, tất nhiên, khi chèn văn bản vào bộ đệm. Có vẻ như tôi sẽ có thể toggle-input-method( C-\) và chọn ngôn ngữ thay thế.

Cho đến nay, gần như rất tốt.

Đây là một lợi thế: Tôi sử dụng bố cục Dvorak tiếng Anh, mà tôi đặt ở cấp độ HĐH (nghĩa là với setxkbmap). Khi tôi toggle-input-method, văn bản tôi chèn sẽ chính xác nếu tôi có bố cục QWERTY (tiêu chuẩn ở Hoa Kỳ), nhưng xuất hiện dưới dạng vô nghĩa vì tôi đang ở Dvorak. (FWIW, khi tôi chuyển bố cục sang tiêu chuẩn Hoa Kỳ, nó hoạt động tốt.)

Vậy: làm cách nào để thông báo cho Emacs rằng tôi đang sử dụng Dvorak để toggle-input-methodbạn bè dịch các phím bấm của tôi sang các ký tự chính xác trong ngôn ngữ khác?


Thụy Điển-postfix và các phương thức nhập liệu thành phần khác hoạt động với tôi, bạn đang gặp rắc rối với phương pháp nào?
shapr

@shapr: Tôi đang chuyển đổi giữa tiếng Anh và tiếng Ả Rập. Vấn đề dường như là tôi đang sử dụng bố cục Dvorak ở cấp độ HĐH, vì tính năng bật tắt hoạt động tốt khi tôi sử dụng bố cục tiêu chuẩn của Hoa Kỳ ở cấp độ HĐH.
Dân

Câu trả lời:


7

Có một phương pháp để thay đổi định nghĩa bố cục vật lý cho phương thức nhập bằng cách cài đặt quail-keyboard-layout-type. Nhưng có vẻ như Dvorak không nằm trong số những ứng cử viên có thể có quail-keyboard-layout-alisttrong Emacs 24.4 của tôi.

Bạn có thể xác định bố cục bàn phím vật lý mới bằng cách xem định nghĩa quail-keyboard-layout-alisttrong quail.elhoặc tạo phương thức nhập mới bằng cách xác định các phím tiếng Ả Rập tương ứng cho bố cục Dvorak.

Tôi không có kinh nghiệm trong lần đầu tiên, nhưng tôi có thể làm chứng cách tiếp cận thứ hai dễ dàng hơn bạn nghĩ. (Tôi phải tạo một phương thức nhập Thổ Nhĩ Kỳ Ottoman trên đầu Farsi.) Sao chép arabic.el(nằm trong hệ thống Debian của tôi tại /usr/share/emacs/24.4/lisp/leim/quail/arabic.el.gz) vào nhà của bạn site-lispvà thay đổi các phím theo sở thích của bạn. Ngoài ra, đừng quên thay đổi tên phương thức nhập, v.v. Bạn vừa tạo phương thức nhập Dvorak-Ả Rập mới.

Tôi có thể cập nhật câu trả lời với nhiều chi tiết hơn nếu bất cứ điều gì có vẻ phức tạp.


Cảm ơn bạn! Điều đó đặt tôi vào con đường chính xác. Tôi sẽ đăng một câu trả lời bổ sung đưa ra cách tôi đến đó trên ...-alistphiên bản.
Dân

Không có gì. Bạn có thể nghĩ để gửi bản cập nhật của mình cho sự quail-. *-alistphát triển của Emacs. Tôi chắc chắn có những người dùng Dvorak khác sẽ được hưởng lợi từ nó.
Emre Sahin

7

@EmreSahin đưa tôi đi đúng hướng để trả lời câu hỏi này, vì vậy tôi sẽ trình bày một chút chi tiết trong trường hợp bất kỳ ai khác phải tự xử lý một vấn đề như thế này.

Như Emre chỉ ra, chúng ta cần thêm bố cục Dvorak vào quail-keyboard-layout-alist. Nó chỉ ra rằng quailthư viện không được ghi chép đầy đủ trong tài liệu hướng dẫn , trong đó hai chức năng liên quan được đề cập khi truyền trên một nút.

Tuy nhiên, sau khi tham khảo chủ đề trợ giúp này và đặc biệt là trang EmacsWiki về tiếng Nga với Dvorak (từ đó câu trả lời này là cũi), tôi nghĩ rằng tôi đã hiểu được.

Chuỗi doc cho biến quail-keyboard-layoutmô tả những gì chúng ta cần đưa vào quail-keyboard-layout-alist. Đó là một chuỗi dài tương ứng với 6 hàng gồm 15 phím mỗi phím. Mỗi hàng tương ứng với các giá trị không dịch chuyển và dịch chuyển của mỗi khóa, với tổng số 30 ký tự trên mỗi hàng. Tôi không chắc chắn về điểm sau, nhưng có vẻ như, đối với những gì tôi sẽ gọi là bàn phím "bán chuẩn" với 4 hàng phím, mỗi hàng thứ nhất và thứ sáu nên có 30 khoảng trống.

Tiết lộ lớn:

(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")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.