Bagaimana saya bisa memetakan ulang usus besar ("shift + period")?

0

Saya memetakan ulang tata letak Qwerty ( Denmark ) ke Dvorak menggunakan AHK karena saya tidak dapat menginstal tata letak keyboard khusus di komputer ini. Jadi misalnya ini berfungsi dengan baik:

:*: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".

Sejauh ini bagus, tapi ini tidak berfungsi untuk "usus besar" yang seharusnya menjadi huruf besar "V". Menurut dokumen, saya harus dapat menggunakan karakter pelarian tetapi mungkin hanya di output, bukan di pemicu? Karena itu bukan kunci huruf, solusi ini juga tidak bekerja.

Saya sudah mencoba beberapa kombinasi:

:*::::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."

Catatan: tentu saja saya hanya mencoba salah satu di atas pada suatu waktu, tetapi di sini semuanya ditampilkan, tidak dikomentari.

Torben Gundtofte-Bruun
sumber
Hanya ingin tahu, jenis keyboard apa yang Anda miliki? Di keyboard saya, shift+. adalah > daripada a :. Saya menulis jawaban dan menyadari itu tidak akan sangat membantu jika saya tidak menyesuaikan perbedaannya. Juga, apakah ada keuntungan khusus di sini untuk digunakan Hotstrings dari pada Tombol cepat ?
angerson
@ ProtractorNinja: Oh, saya tidak menyadari tata letak AS memilikinya di sana :-) Ini a Tata letak Denmark (lihat gambar) tetapi tidak masalah di mana titik dua berada, selama itu adalah posisi Shift, jadi AS memiliki situasi yang sama, hanya di tempat fisik yang berbeda. Saya memperbarui posting saya.
Torben Gundtofte-Bruun

Jawaban:

1

Itu dokumen AutoHotKey baru (yang karena beberapa alasan tidak terkait dengan yang lama) mempertahankan kecenderungan dokumen warisan untuk membuat mencari tahu tentang hal-hal seperti ini sangat sulit.

Pilihan Anda untuk digunakan Hotstrings daripada Tombol cepat memiliki manfaat tidak pernah membiarkan string memicu satu sama lain (dari Hotstrings ):

Secara default, hotstring tidak pernah dipicu oleh penekanan tombol yang dihasilkan oleh skrip AutoHotkey apa pun. Ini menghindari kemungkinan loop tak terbatas di mana hotstring saling memicu berulang kali. Di v1.1.06 dan yang lebih baru, perilaku ini dapat dikontrol dengan #InputLevel dan SendLevel. Namun, hotstrings penggantian otomatis selalu menggunakan level kirim 0 dan karenanya tidak pernah memicu hotkey kait atau hotstring.

saya berpikir KirimInput aku s seharusnya untuk beroperasi dengan cara yang sama, secara default, tetapi saya menemukan bahwa mencoba menggunakan hotkey sederhana dengan SendInput akan berisiko memicu hotkey lainnya (dan menggunakan definisi yang hampir sama dengan hotstring tidak berfungsi, mungkin karena kebiasaan terkait usus besar), jadi saya harus secara manual meminta hotkey ke menggunakan itu Kait Keyboard (yang dipasang secara otomatis karena penggunaan 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

Anda harus dapat menggunakan hotstrings untuk memetakan kembali kunci lain seperti yang telah Anda lakukan, meskipun hotkey mungkin berfungsi sebagai gantinya jika Anda benar-benar menginginkannya, mungkin dengan #GunakanHook seperti yang saya lakukan pada contoh saya di atas dan / atau #InputLevel / SendLevel .

angerson
sumber
Ya, ini berfungsi - sebenarnya hanya dasar :::send V sudah cukup! Terima kasih untuk ini!
Torben Gundtofte-Bruun
@ TorbenGundtofte-Bruun Fantastis! Awas saja; tombol cepat seperti ini nakal dan ingin memicu operasi lain jika Anda tidak hati-hati.
angerson
Terima kasih atas peringatan itu; Saya akan mengingatnya jika ada yang muncul. Sejauh ini baik!
Torben Gundtofte-Bruun