Thông thường, vì lý do lịch sử, emacs đối xử với TAB
mã C-i
khóa và khóa là như nhau, xem tài liệu không thể thiếu của emacs về các phím chức năng hoặc câu trả lời của abo-abo cho câu hỏi "Sự khác biệt giữa TAB và?" .
Chú ý: Trong bài này, mã phím là
TAB
,<tab>
vàC-i
; tabvà Ctrl+ imặt khác là các phím vật lý trên bàn phím.Tuy nhiên, tại thời điểm này, emacs đối xử với
TAB
vàC-i
như điều tương tự, tức là(equal (kbd "TAB") (kbd "C-i"))
->t
.
Tuy nhiên, vì chúng ta không còn sống trong sự kỳ quặc của máy tính, tôi thấy điều này vô cùng khó chịu. Có một vài gợi ý ngoài kia những gì có thể được thực hiện để giải quyết vấn đề này, vd
"Làm cách nào để liên kết một lệnh với Ci mà không thay đổi TAB?"
- Giải pháp của Trey không hoạt động với tôi, biến
local-function-key-maps
không thay đổi. Sửa đổi nó để sử dụngdelete
thay vìdelq
dẫn đến một biến đã được sửa đổi nhưng nó không mang lại giải pháp ... tabvà Ctrl+ ivẫn như vậy. - Dịch sang siêu bản đồ có vẻ như một cách giải quyết của những năm 1980 ... Tôi cũng có thể muốn sử dụng Hyper+ i.
- Giải pháp của Trey không hoạt động với tôi, biến
Sử dụng
input-decode-map
để ánh xạ Ctrl+ itới một số mã kiểm soát sau ASCII gần như là điều tôi đang tìm kiếm. Ngoại trừ việc nó không hoạt động đúng vớikbd
ý nghĩa vĩ mô là người ta phải sửa đổi tất cả các bit của mã nguồn sẽ liên kết Ctrl+ i. Có thể cho rằng đây là giải pháp tốt nhất cho rằng tất cả các mã nguồn được sửa đổi đúng.Sử dụng
(kbd "<tab>")
for tabvà(kbd "C-i")
((kbd "TAB")
nghĩa là\t
nghĩa đen) cho Ctrl+ i không hoạt động nhưng bạn phải sửa đổi tất cả các tệp nguồn sử dụng sai loại tab[Đọc: mã khóaTAB
] gây khó chịu.
Điều này đã được đề xuất, ví dụ như trong một vấn đề github và trên emacs.sx .
Không có giải pháp nào trong số các giải pháp này có vẻ là giải pháp thực sự, tôi muốn xem xét chúng là cách giải quyết hoặc hack (của lỗi hiện tại ).
Có cách nào để buộc emacs ánh xạ tabtới
(kbd "<tab>")
và(kbd "TAB")
trong khi Ctrl+ iđược ánh xạ tới mức(kbd "C-i")
thiếu modyfing mã nguồn của emacs không?Cách tiếp cận này phải hoàn toàn vô hình với người dùng, nghĩa là các tabmã khóa giống như
<tab>
vàTAB
nên ánh xạ tới một ràng buộc trong khi mã khóa Ctrl+ igiống nhưC-i
ánh xạ tới một ràng buộc khác.
Trên một lưu ý ít nghiêm trọng hơn: Bất kỳ nhà phát triển emacs nào ở đây có thể nhận xét liệu điều này sẽ được thay đổi / sửa trong mã nguồn emacs tại một số điểm?
kbd
dịch TAB dưới dạng [tab]. Nó chỉ không hoạt động cho các phần được tải sẵn của Emacs.
TAB
vàC-i
(các mã, không phải các khóa) là một và giống nhau theo định nghĩa củaTAB
.