Làm cách nào để tôi có thể ánh xạ lại dấu hai chấm (dịch chuyển + thời gian)?


0

Tôi đang ánh xạ lại bố cục Qwerty ( tiếng Đan Mạch ) sang Dvorak bằng AHK vì tôi không thể cài đặt bố cục bàn phím tùy chỉnh trên máy tính này. Vì vậy, ví dụ những công việc này tốt:

:*:n::b  ; remap "n" to "b". This automagically also works for "N"-->"B".
:*:,::w  ; remap comma to lowercase "w".
:*:;::W  ; uppercase comma must be specifically coded.
:*:.::v  ; remap period to lowercase "v".

Cho đến nay là tốt, nhưng điều này không làm việc cho "dấu hai chấm" mà sẽ trở thành chữ hoa "V". Theo các tài liệu, tôi sẽ có thể sử dụng ký tự thoát nhưng có lẽ chỉ trong đầu ra, không phải trong kích hoạt? Bởi vì nó không phải là một phím chữ cái, giải pháp này cũng không hoạt động.

Tôi đã thử một số kết hợp:

:*::::V      ; "hotstring is missing its abbreviation"
:*C::::V     ; "hotstring is missing its abbreviation"
:*C: `: ::V  ; this just produces a colon...
:*:`:::V     ; "invalid hotkey"
:*C:`:::V    ; "invalid hotkey"
`:::V        ; "line does not contain a recognized action."

Lưu ý: tất nhiên tôi chỉ thử một trong những điều trên tại một thời điểm, nhưng ở đây tất cả chúng đều được hiển thị, không được nhận xét.


Chỉ tò mò, bạn có loại bàn phím nào? Trên bàn phím của tôi, shift+.là một >thay vì a :. Tôi đã viết lên một câu trả lời và nhận ra rằng nó sẽ không hữu ích nếu tôi không điều chỉnh sự khác biệt. Ngoài ra, là có một lợi thế đặc biệt vào đây để sử dụng Hotstrings thay vì Hotkeys ?
angerson

@ProtractorNinja: Ồ, tôi không nhận ra bố cục của Hoa Kỳ có ở đó :-) Đó là bố cục của Đan Mạch (xem hình ảnh) nhưng thực sự không quan trọng là vị trí của dấu hai chấm, miễn là ở vị trí Shift, vì vậy Hoa Kỳ có cùng một tình huống, chỉ ở một nơi vật lý khác nhau. Tôi đã cập nhật bài viết của mình.
Torben Gundtofte-Bruun

Câu trả lời:


1

Các tài liệu AutoHotKey mới (vì một số lý do không được liên kết từ các tài liệu cũ) vẫn giữ xu hướng của các tài liệu cũ để tìm hiểu về những điều như thế này rất khó khăn.

Sự lựa chọn của bạn để sử dụng Hotstrings hơn Hotkeys có lợi ích của không bao giờ cho phép các dây kích hoạt lẫn nhau (từ Hotstrings ):

Theo mặc định, hotstrings không bao giờ được kích hoạt bởi tổ hợp phím được tạo bởi bất kỳ tập lệnh AutoHotkey nào. Điều này tránh khả năng của một vòng lặp vô hạn nơi các điểm nóng kích hoạt lẫn nhau nhiều lần. Trong v1.1.06 trở lên, hành vi này có thể được kiểm soát với #InputLevel và SendLevel. Tuy nhiên, tự động thay thế các hotstrings luôn sử dụng gửi mức 0 và do đó không bao giờ kích hoạt các hotkey hook hoặc hotstrings.

Tôi nghĩ rằng SendInput được cho là hoạt động tương tự, theo mặc định, nhưng tôi thấy rằng việc cố gắng sử dụng một phím nóng đơn giản với SendInput sẽ có nguy cơ kích hoạt các phím nóng khác (và sử dụng gần như cùng định nghĩa với một chuỗi nóng không hoạt động, có thể là do liên quan đến dấu hai chấm quirks), vì vậy tôi đã tự hỏi phím nóng để sử dụng các phím Hook (được tự động cài đặt bởi vì việc sử dụng hotstrings):

#UseHook, On
:::SendInput, V ; Oddly enough, a colon as a hotkey trigger doesn't need 
                ; to be escaped, but a colon in a hotstring, unescaped or
                ; otherwise, just breaks things.
; Wouldn't get triggered by :, even if uncommented (that's good!)
; v::SendInput, colons in AHK are confusing
#UseHook, Off

Bạn sẽ có thể sử dụng hotstrings để ánh xạ lại các khóa khác như bạn đã có, mặc dù các phím nóng có thể hoạt động thay thế nếu bạn thực sự muốn chúng, có lẽ với #UseHook như tôi đã làm trong ví dụ của tôi ở trên và / hoặc #InputLevel / SendLevel .


Vâng, điều này hoạt động - thực sự chỉ cần cơ bản :::send Vlà đủ! Cảm ơn vì điều này!
Torben Gundtofte-Bruun

@ TorbenGundtofte-Bruun Tuyệt vời! Chỉ cần coi chừng; các phím nóng như thế này rất tinh nghịch và muốn kích hoạt các hoạt động khác nếu bạn không cẩn thận.
angerson

Cảm ơn vì lời cảnh báo đó; Tôi sẽ ghi nhớ nó nếu có bất cứ điều gì tăng lên. Càng xa càng tốt!
Torben Gundtofte-Bruun
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.