Làm thế nào để bảo vệ các ràng buộc phím emacs khi thay đổi bố trí bàn phím?


7

Hãy tưởng tượng rằng bạn thay đổi bố trí bàn phím của bạn. Bạn phải dành thời gian đào tạo cơ bắp của mình để tìm các phím mà bạn muốn gõ, điều này đã đủ khó.

Nhưng bạn cũng sẽ phải dành thời gian để rèn luyện cơ bắp của mình để tìm các phím mà bạn muốn nhập như một phần của các phím tắt, điều này thật vô lý (bạn thường chọn các phím này vì chúng dễ tiếp cận chứ không phải vì chữ cái của chúng *).

Có cách nào để các định nghĩa chính này không di chuyển khi bạn thay đổi bố cục bàn phím không?

Ví dụ nếu anh ở AZERTY, và tôi muốn học qwerty, tôi muốn có beginning-of-lineánh xạ từ C-ađến C-q, để nó ở lại nó ở đâu trên bàn phím của tôi (đầu tiên bên phải then chốt của TAB).

Theo tôi hiểu, nó được thực hiện một phần thông qua các phương thức nhập liệu, nhưng nó có cách ngược lại: nó thay đổi cách emacs diễn giải các ký tự đầu vào cho văn bản. Nhưng nó sẽ không hoạt động nếu bạn muốn thay đổi toàn bộ bố cục bàn phím của mình.

Tôi hiểu rằng có rất nhiều cách để xác định các ràng buộc chính, nhưng ví dụ, tôi sẽ coi một giải pháp có thể chấp nhận được là tất cả các ràng buộc chính được chuyển đổi từ chuỗi con người với kbdhàm.


*. Nó không đúng với một số khóa nhất định ít được sử dụng. Ví dụ, C-cbản đồ của hầu hết các chế độ chính sử dụng các tên chính dễ nhớ, thay vì dễ tiếp cận. Là một câu hỏi về phần thưởng, thật tuyệt khi có thể bảo quản (ánh xạ lại để khóa vật lý không di chuyển) một số phím và di chuyển (không ánh xạ lại, chữ cái liên quan đến khóa không thay đổi) một số khác. Người dùng có thể chọn một tùy chọn hoặc tùy chọn khác bằng cách sử dụng hai chức năng khác nhau thay vì kbdkhi xác định các phím bấm của mình.


1
Nếu bạn có thể tìm thấy giải pháp phát hiện bố cục bàn phím cụ thể từ bên trong Emacs, thì bạn có thể ánh xạ lại theo chương trình dựa trên phát hiện đó. Có một câu hỏi liên quan không có câu trả lời đúng, có tên Emacs xác định bố cục bàn phím : stackoverflow.com/questions/7813648/
Kẻ

@lawlist Tôi không có kịch bản "thường xuyên chuyển đổi", ít nhất là không thường xuyên đến mức thay đổi một tùy chọn trong tệp init mỗi khi nó xảy ra là không hợp lý. Chắc chắn tự động phát hiện sẽ còn đẹp hơn, nhưng nếu bạn có một giải pháp yêu cầu người dùng thông báo cho emacs về keymap của mình, tôi rất vui lòng chấp nhận nó.
T. Verron

@ T.Verron khá chắc chắn câu trả lời là bạn không thể, với các emacs GNU đơn giản. Bạn có thể sử dụng gói keybinding sử dụng cùng một vị trí phím tắt bất kể bố cục bàn phím hiện tại. (chế độ ergoemacs thực hiện điều đó, nhưng đó không phải là khóa mặc định của GNU Emacs) Tôi cũng nghĩ chế độ độc ác cũng có thể. Về cơ bản, gói keybinding cần cung cấp một lớp.
Xah Lee

Câu trả lời:


1

Theo như tôi hiểu câu hỏi của bạn thì key-translation-mapcó vẻ như là một linh hồn tốt cho vấn đề của bạn. Ví dụ: nếu bạn muốn có C-qhành động như C-atrong ví dụ của mình, bạn sẽ xác định như sau:

  (define-key key-translation-map (kbd "C-q") (kbd "C-a"))
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.