Ten skrypt AutoHotKey, który napisałem, obsługuje wyszukiwanie hjkl, gg, G, Ce, Cy, Cf i Cb, a także /, n i N. Naciśnięcie /powoduje przejście do trybu wyszukiwania, a Esc, Enteroraz Ctrl- [wprowadzi Cię z powrotem w trybie normalnym. Jeśli coś nie działa tak, jak powinno, spróbuj nacisnąć Escape, aby wrócić do trybu normalnego.
#IfWinActive ahk_class AcrobatSDIWindow
h::
if (inAcrobatSearchMode)
Send h
else Send {Left}
return
j::
if (inAcrobatSearchMode)
Send j
else Send {Down}
return
k::
if (inAcrobatSearchMode)
Send k
else Send {Up}
return
l::
if (inAcrobatSearchMode)
Send l
else Send {Right}
return
n::
if (inAcrobatSearchMode)
Send n
else Send {F3}{Esc}
return
+n::
if (inAcrobatSearchMode)
Send N
else Send +{F3}{Esc}
return
+g::
if (inAcrobatSearchMode)
Send G
else Send {End}
return
; see http://stackoverflow.com/questions/1794258/detect-a-double-key-press-in-autohotkey
g::
if (inAcrobatSearchMode)
Send g
else {
if (A_PriorHotkey <> "g" or A_TimeSincePriorHotkey > 400) {
; Too much time between presses, so this isn't a double-press.
KeyWait, g
return
}
Send {Home}
}
return
/::
if (inAcrobatSearchMode)
Send /
else {
inAcrobatSearchMode := true
Send ^f
}
return
Esc::
inAcrobatSearchMode := false
Send {Esc}
return
^[::
inAcrobatSearchMode := false
Send {Esc}
return
Enter::
if (inAcrobatSearchMode) {
inAcrobatSearchMode := false
}
Send {Enter}
return
;go back into normal mode after scrolling with any control command
^e::
inAcrobatSearchMode := false
Send {Esc}{Down}
return
^y::
inAcrobatSearchMode := false
Send {Esc}{Up}
return
^f::
inAcrobatSearchMode := false
Send {Esc}{PgDn}
return
^b::
inAcrobatSearchMode := false
Send {Esc}{PgUp}
return
#IfWinActive
Oto sedno
W komentarzach pozostaw krótkie raporty o błędach lub sugestie!
Istnieją pewne znane problemy z przytrzymywaniem poleceń ruchu Ctrl przez długi czas, które mają związek z tym, że AutoHotKey nie jest w stanie wystarczająco szybko przetłumaczyć danych wejściowych, ale polecenia ruchu inne niż Ctrl nie powinny mieć tego problemu.
Niestety, nie wiem wystarczająco dużo o Linuksie lub Mac OS X, aby móc dostarczyć dla nich również rozwiązania. Jeśli komuś uda się przenieść to na inne systemy operacyjne, dodaj swoją odpowiedź lub zasugeruj edycję tego z instrukcjami. :)