Tôi đã hỏi một câu hỏi về tập lệnh Autohotkey tôi đang sử dụng cho emacs (trong Cygwin) để remap phím Ctrl và Alt. Đây là câu hỏi: https://stackoverflow.com/q/15899963/1243435.Autohotkey có tính năng 'kiểm tra kịch bản của tôi' không?
Một cách tôi đã thử nghiệm tập lệnh của mình là mở các emac và sử dụng tính năng C-h k
hiển thị tài liệu cho chuỗi khóa. Nó cho phép tôi xác nhận liệu Autohotkey có đang làm những gì tôi mong đợi hay không.
Tuy nhiên có vẻ như có một số biến chứng, ví dụ có thể là thiết bị đầu cuối Cygwin không cho phép trình tự C-M-SPC
để 'vượt qua' với emacs, vì vậy emacs thực sự chỉ nhận được C-SPC
thay thế.
Câu hỏi của tôi là: Autohotkey có cơ sở kiểm tra riêng cho bạn thấy những gì Autohotkey đang nhận và gửi khi bạn nhấn một vài tổ hợp phím trên bàn phím? Nếu có, tôi sẽ có thể xác nhận rằng tập lệnh của tôi đang hoạt động tốt hay không, và sau đó quyết định xem đó có phải là một số vấn đề khác gây ra cho tôi các vấn đề trong việc nhận các chuỗi khóa thông qua các emacs hay không.
Cập nhật dựa trên câu trả lời gợi ý của Armin
Trên gợi ý từ Armin, dưới đây là những gì tôi nhìn thấy trong màn hình xem AHK sau khi làm như sau:
- chuột-nhấp vào Cygwin cửa sổ để kích hoạt nó (tôi đã có emacs chạy trong đó),
- báo chí LeftAlt + h sau đó k mà tôi biết AHK sẽ chuyển đổi thành
C-h k
, đây là 'cho tôi biết những gì các dãy bàn phím tiếp theo nghĩa là' trong emacs, - tại emacs giúp báo chí nhắc Left Win + hợp phím Alt trái + SPACE,
- thấy rằng emacs cho tôi tài liệu cho
[email protected]
(mà cũng được ràng buộc với dãy phímC-M-SPC
bằng cách này), - chuột-nhấp lại trong cửa sổ xem AHK và làm mới với F5.
Dưới đây là phần có liên quan của các đầu ra trong cửa sổ AHK (modulo một chút rút ngắn của các dòng thời gian để dừng lại word-gói ở đây):
VK SC Type Up/Dn Elapsed Key Window
----------------------------------------------------------
A4 038 h d 4.18 LAlt /cygdrive/c/...
A4 038 i u 0.00 LAlt
A2 01D i d 0.00 LControl
48 023 d 0.09 H
48 023 u 0.09 H
A4 038 h u 0.05 LAlt
A2 01D i u 0.00 LControl
4B 025 d 1.22 K
4B 025 u 0.06 K
A4 038 h d 1.12 LAlt
A4 038 i u 0.00 LAlt
A2 01D i d 0.00 LControl
5B 15B h d 0.02 LWin
A4 038 i d 0.00 LAlt
20 039 d 0.19 Space
20 039 u 0.06 Space
5B 15B h u 0.16 LWin
A4 038 i u 0.00 LAlt
A4 038 h u 0.00 LAlt
A2 01D i u 0.01 LControl
74 03F d 1.90 F5 C:\...\AutoHotkey.ahk ...
Nó cho thấy rất nhiều điều đang xảy ra trên.
hiểu biết của tôi là điều này chứng minh rằng AHK được chuyển đổi một cách chính xác tôi Left Alt +Left Win + SPACE để C-M-SPC
.
Dưới đây là giải thích lý do tại sao tôi cho rằng bằng chứng được thực hiện.
Sau đây là tôi nhấn LAlt xuống, và nó được chuyển đổi thành một xuống của LCtrl
:
A4 038 h d 4.18 LAlt /cygdrive/c/...
A4 038 i u 0.00 LAlt
A2 01D i d 0.00 LControl
(nhưng tôi không chắc chắn những gì mà u
của LAlt
là ở giữa - AHK giải thích rằng 'i = Bị bỏ qua vì nó được tạo bởi tập lệnh AHK').
Tiếp theo là tôi ấn và nhả h:
48 023 d 0.09 H
48 023 u 0.09 H
vào thời điểm này emacs đã nhận C-h
.
Tiếp theo, tôi phát hành LAlt, sau đó nhấn và nhả k.
A4 038 h u 0.05 LAlt
A2 01D i u 0.00 LControl
4B 025 d 1.22 K
4B 025 u 0.06 K
Emacs bây giờ đi vào lời nhắc trợ giúp cho 'mô tả chuỗi khóa'.
Sau đó, tôi tiếp nhấn xuống trên LAlt và chúng ta thấy rằng AHK gửi d
tín hiệu cho LCtrl
(và một lần nữa có mà 'bỏ qua' u
của LAlt
trên dòng thứ hai mà tôi sẽ không có dự kiến), sau đó tôi nhấn xuống trên Lwin và AHK gửi một d
của LAlt
và sau đó tôi nhấn xuống trên SPACE:
A4 038 h d 1.12 LAlt
A4 038 i u 0.00 LAlt
A2 01D i d 0.00 LControl
5B 15B h d 0.02 LWin
A4 038 i d 0.00 LAlt
20 039 d 0.19 Space
Cuối cùng đến chuỗi whe tái tôi phát hành tất cả những LAlt + Lwin + SPACE và chúng ta thấy rằng AHK gửi u
tín hiệu cho Space
và LAlt
và LCtrl
:
20 039 u 0.06 Space
5B 15B h u 0.16 LWin
A4 038 i u 0.00 LAlt
A4 038 h u 0.00 LAlt
A2 01D i u 0.01 LControl
cuối là khi tôi làm mới dữ liệu trong cửa sổ xem AHK sau khi nhấp chuột để kích hoạt nó:
74 03F d 1.90 F5 C:\...\AutoHotkey.ahk ...
Điều đó dường như chứng minh rằng kịch bản AHK của tôi đã làm những gì tôi hy vọng.
Chỉ vấn đề còn lại là bí ẩn u
của số LAlt
được cắt hai lần.
Bất kỳ ý tưởng nào?
Bạn có thể xem những phím đang được nhận được trong [Key lịch sử và thông tin kịch bản] xem, nhưng nó không hiển thị những gì nó gửi. [Các dòng được thực hiện gần đây nhất] cũng không hoàn hảo. –
Đối mặt với cùng một vấn đề với bạn với GNU Emacs. Đã giải quyết vấn đề và một trong các giải pháp có thể có trên [Diễn đàn cộng đồng AHK] (http://www.autohotkey.com/board/topic/95740-issues-remapping-ctrl-to-alt-and-alt-to-ctrl-for -emacs /). – AntonLosev