Hallo zusammen,
man kann mit dem Tastenkürzel STRG+Pfeiltasten zu Wort-Ende bzw. Wort-Anfang springen. Da ich diese Funktion sehr oft nutze, möchte ich sie erweitern.
Ich möchte auch zu Ende oder Anfang, von Wörtern die im CamelCase geschrieben sind, springen.
Leider ist mir keine Funktion oder Programm bekannt welches dieses Problem löst. Also dachte ich an AutoIt!
Die Funktion HotKeys zu erstellen gibt es ja, aber wie komm ich an die Position des Cursors?
CamelCase Navigation
-
- [ offen ]
-
mnowack -
26. Januar 2012 um 12:35 -
Geschlossen -
Erledigt
-
-
[autoit]
[/autoit]
#include <Array.au3>
$aMousePos = MouseGetPos()
_Arraydisplay($aMousePos)weitere Informationen findest du in der Hilfe
Gruß Marvin
-
Ähh Protex?? Was hatte das jetzt mit dem Thema zu tun??
@mnowack: Du müsstest dazu bei Auslösung der Tastenkombination überprüfen, ob sich der Benutzer gerade in einem Textfeld befindet, dann noch in welcher Position und dann über das nächste/vorherige Wort ein Regex laufen lassen, bspw.als Markierung eines Teilwortes. Ist ein bisschen Arbeit, denke ich...
-
Ich hab es jetzt mal mit dem Clipboard gemacht, ist nur ein Beispiel, funktioniert auch aber ist eigentlich nur ein Workarround, da es relativ langsam ist.
Ich denke mal, das die die Scripting Leute wie Bugfix da andere Methoden kennenDer Hotkey
[autoit]HotKeySet("^{LEFT}", "Searchleft")
[/autoit]
funktioniert übrigens nicht, die STRG Taste bleibt dadurch hängenSpoiler anzeigen
[autoit]HotKeySet("r", "Searchright")
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("e", "Searchleft")While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(10)
WEndFunc Searchright()
[/autoit] [autoit][/autoit] [autoit]
Local $preopt, $originalclipboard, $Clipget
$preopt = Opt("KeyDownDelay")
Opt("KeyDownDelay", 0)
$originalclipboard = ClipGet()
Send("{SHIFTDOWN}")
Send("{Right}")
Send("{SHIFTUP}")
Send("^c")
Send("^c")
$Clipget = Asc(ClipGet())
If $Clipget > 96 And $Clipget < 123 Then
While 1
Send("{Left}{Right}")
Send("{SHIFTDOWN}")
Send("{Right}")
Send("{SHIFTUP}")
Send("^c")
Send("^c")
$Clipget = Asc(ClipGet())
Switch $Clipget
Case 65 To 90
Send("{LEFT}")
ExitLoop
Case 13
Send("{LEFT}")
ExitLoop
Case 0
ExitLoop
EndSwitch
ClipPut("")
WEnd
ElseIf $Clipget > 64 And $Clipget < 91 Then
While 1
Send("{Left}{Right}")
Send("{SHIFTDOWN}")
Send("{Right}")
Send("{SHIFTUP}")
Send("^c")
Send("^c")
$Clipget = Asc(ClipGet())
Switch $Clipget
Case 97 To 122
Send("{LEFT}")
ExitLoop
Case 13
Send("{LEFT}")
ExitLoop
Case 0
ExitLoop
EndSwitch
WEnd
EndIf
ClipPut($originalclipboard)
Opt("KeyDownDelay", $preopt)
EndFunc ;==>SearchrightFunc Searchleft()
[/autoit]
Local $originalclipboard, $Clipget, $preopt
$originalclipboard = ClipGet()
$preopt = Opt("KeyDownDelay")
Opt("KeyDownDelay", 0)
Send("{SHIFTDOWN}")
Send("{LEFT}")
Send("{SHIFTUP}")
Send("^c")
Send("^c")
$Clipget = Asc(ClipGet())
If $Clipget > 96 And $Clipget < 123 Then
While 1
Send("{RIGHT}{LEFT}")
Send("{SHIFTDOWN}")
Send("{LEFT}")
Send("{SHIFTUP}")
Send("^c")
Send("^c")
$Clipget = Asc(ClipGet())
Switch $Clipget
Case 65 To 90
Send("{RIGHT}")
ExitLoop
Case 13, 32
Send("{RIGHT}")
ExitLoop
Case 0
ExitLoop
EndSwitch
ClipPut("")
WEnd
ElseIf $Clipget > 64 And $Clipget < 91 Then
While 1
Send("{RIGHT}{LEFT}")
Send("{SHIFTDOWN}")
Send("{LEFT}")
Send("{SHIFTUP}")
Send("^c")
Send("^c")
$Clipget = Asc(ClipGet())
Switch $Clipget
Case 97 To 122
Send("{RIGHT}")
ExitLoop
Case 13, 32
Send("{RIGHT}")
ExitLoop
Case 0
ExitLoop
EndSwitch
WEnd
EndIf
ClipPut($originalclipboard)
Opt("KeyDownDelay", $preopt)
EndFunc ;==>Searchleft -
- Offizieller Beitrag
Da ich diese Funktion sehr oft nutze
WO nutzt du das? Geht es dir um den SciTE-Editor oder um Fremdsoftware. Das ist entscheidend für die Herangehensweise.
Falls es SciTE betrifft würde ich AutoIT keinesfalls verwenden, sondern LUA. Lua ist bereits in den Editor integriert und man braucht keine großartigen Verrenkungen zu machen um Positionen zu finden bzw. anzuspringen. -
, aber wie komm ich an die Position des Cursors?
und darauf bezog sich meine Antwort..?Gruß Marvin
-
- Offizieller Beitrag
Ich nehme mal an, dass du das in SciTE verwenden möchtest. Ich habe dazu eine LUA-Lösung erstellt.
CamelJump.lua