2013-04-10 16 views
5

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:

  1. chuột-nhấp vào Cygwin cửa sổ để kích hoạt nó (tôi đã có emacs chạy trong đó),
  2. 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,
  3. tại emacs giúp báo chí nhắc Left Win + hợp phím Alt trái + SPACE,
  4. 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ím C-M-SPC bằng cách này),
  5. 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 SpaceLAltLCtrl:

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?

+0

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. –

+0

Đố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

Trả lời

4

Bạn có thể thử bằng cách sử dụng Key History cửa sổ

  • Chạy kịch bản hotkey của bạn
  • Nhấp chuột phải vào biểu tượng trên khay và chọn mở
  • Nhấp vào Xem menu và chọn lịch sử chính và kịch bản thông tin.tiêu đề

Key History screen

0

của Câu hỏi của bạn là: "Liệu Autohotkey có một tính năng thử nghiệm-my-kịch bản" - tốt, để trả lời chỉ đó, tôi đề nghị sử dụng QuickAHK, được thiết kế để làm việc đó! Nó có một hộp cát và rất nhiều tính năng khác. Tôi sử dụng nó để kiểm tra đoạn trích mọi lúc (tôi chỉ là người dùng đơn giản - không liên kết với chương trình).

Đây là liên kết tới số current thread, vì số old forum is defunct. và current download link.

Nếu bạn thực hiện nhiều thử nghiệm hoặc phát triển tập lệnh nhanh chóng và bẩn, bạn có thể sử dụng công cụ cho phép bạn chạy tập lệnh khi đang di chuyển. Các công cụ này bao gồm một số trình chỉnh sửa văn bản, một trong số các công cụ được đăng trên diễn đàn Tự động sửa hoặc bạn đã tự viết. QuickAHK là một một trong những công cụ ... với một vài sự khác biệt:

  • Sandbox
  • Restore và Revert
  • script dừng

Tuy nhiên, đó cũng là QuickCodeTester, mà được cập nhật và duy trì.

+0

[Liên kết tải xuống dự án] (http://www.autohotkey.net/~jballi/QuickAHK/v2.2/QuickAHK.zip) không hoạt động nữa. Nó chuyển hướng đến một bài đăng trên diễn đàn. –

+0

Thử QuickCodeTester - Tôi đã đăng liên kết ở trên. – bgmCoder

+0

Tôi khuyên bạn nên đăng bài dưới dạng câu trả lời riêng biệt –

0

tôi sử dụng listlines theo sau là một tạm dừng tại các điểm quan trọng AHK mới nhất cũng hỗ trợ sử dụng báo cáo debug OutputDebug, Text