SciTE-AddOn: OwnHotKeys (inkl. Installer)

  • Ich hatte das Prinzip der kaskadierenden Hotkeys bereits hier gepostet. In dieser Variante war es aber recht unflexibel und auch recht aufwändig zu installieren.
    Jetzt habe ich das als AddOn, basierend auf .properties, erstellt. So lassen sich Änderungen ganz einfach in der Properties-Datei einpflegen. (Die ownhotkeys.properties ist, wie alle anderen Properties-Dateien, über das Menü "Optionen" in SciTE erreichbar).
    Damit eine eigene Properties-Datei auch nutzbar ist, muss man entsprechende Einträge vornehmen. Wer das gern per Hand machen möchte, kann die manuelle Installation verwenden. Wer es bequemer mag, nutzt den Installer. Dateien, an denen Änderungen vorgenommen werden, werden vorher gesichert. Sollte die Sicherung fehlschlagen, bricht die Installation ab.
    Die Installation muss aus SciTE heraus gestartet werden. (OHK_Installer.au3 im entpackten Ordner ausführen)


    Zur Funktionsweise zitiere ich mal aus meinem o.a. Thread

    Zitat

    SciTE hat ja bereits alle Sequenzen von Ctrl+Key vorbelegt. Das ist natürlich unschön, da man für eigene Hotkeys dann auf umständliche Kombinationen zurückgreifen muss, die einem fast die Finger brechen. Oder man muss die voreingestellten Hotkeys ummappen.


    Aber das hat ein Ende. Die Lösung: Cascading Hotkeys
    Das funktioniert recht simpel. Ich habe mir als Trigger die Sequenz "Ctrl+Win" ausgewählt. Das beißt sich mit keinem anderen Hotkey und läßt sich schön mit 2 Fingern einer Hand erledigen. Ist dieser Hotkey gedrückt, läßt man die Win-Taste wieder los aber hält die Ctrl-Taste weiterhin gedrückt und wählt nun die beliebige Taste für die zweite Ctrl+Key-Sequenz. Somit ergeben sich Hotkeys der Form: "Ctrl+Win, Ctrl+X" oder "Ctrl+Win, Ctrl+F2" usw..


    In der vorigen Variante gab es das Problem, dass sich keine au3-Skripte starten liessen. Um das zu ermöglichen wird jetzt die "shell.dll" (von SciTE-RU) verwendet.
    Es werden einige Funktionen mitgeliefert, die ihr im Installer den Hotkeys zuordnen könnt (oder auch jederzeit später in der Properties-Datei).



    Gerade die Funktionen zum Text/Zeilen verschieben möchte ich nicht mehr missen.
    Wenn ihr alle vordefinierten Hotkeys nutzt, sind dieses 65 :D. Das kann man aber gern noch um Hotkeys in Kombination mit ", . _ etc." erweitern, falls mal Bedarf besteht. :whistling:


    !! DEMO ANGUCKEN !!


    Ein Hinweis noch:
    Mit "OHK.ExecuteAU3()" lassen sich AutoIt-Skripte ausführen. Sofern diese Skripte eine Konsolenausgabe enthalten (ConsoleWrite) muss diese Ausgabe vom aufrufenden Lua-Skript an die SciTE-Output-Pane übergeben werden. Dazu habe ich die "SciTE_Output.au3" beigefügt, die vom Installer in euren User-Include-Ordner kopiert wird. In den betreffenden AU3-Skripten muss dann nur der Funktionsname "ConsoleWrite" durch "_SciTE_Output" ersetzt werden und "#Include <SciTE_Output.au3>" eingefügt werden.


    Edit: 29.10.2013
    Zur Ergänzung noch die Funktion "OHK.ShellExecute()". Mit ihr lassen sich dann exe-Dateien und beliebige Dateien mit ihrem verknüpften Programm aufrufen.
    Werde es später noch in die Dateien einbetten, hier schonmal die Funktion (einfach in die OHKFuncs.lua reinkopieren)



    autoit.de/wcf/attachment/23022/




    Edit 15.11.2016
    Nach langem mal eine kleine Anpassung, die ihr bitte selbst in die Datei einpflegt:


    Da ich es bisher nie verwendet hatte, war mir nicht aufgefallen, dass bei Nutzung der SciTE-Variablen ( $(FilePath) etc. ) als Parameter in Befehlszeilen, Backslash nicht escaped werden. Deshalb habe ich nun eine Makrofunktion erstellt, die mit identischen Namen wie die SciTE-Variablen funktioniert, aber (wie in AutoIt) durch @ gekennzeichnet werden ( "$(FilePath)" = "@FilePath", "$(FileDir)"="@FileDir", usw. ).




    EDIT 08.07.2019

    Anpassung der Debugfunktion zur Verwendung in Lua-Skripten


    In der Datei OHKfuncs.lua die Funktion OHK.DebugToConsole mit der folgenden Version ersetzen:

  • Werd später gleich mal in SciTE integrieren!
    Und das mit den Cascading Hotkeys ist 'ne echt tolle Idee :thumbsup:


    MfG

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz


    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • • Im Startpost noch ein Video zum Anschauen der mitgelieferten Funktionen eingefügt


    Wäre nett, wenn ihr mir mal Feedback gebt, ob Installation fehlerfrei gelaufen ist und das AddOn ordentlich arbeitet. - Danke.


    Es könnte evtl. einen Stolperstein geben beim Installieren, wenn eine ältere (bzw. sehr alte) SciTE-Version am Werkeln ist. Irgendwann wurde nämlich der Ordner für User-Includes mit an die Property "openpath.$(au3)" angehängt (dieses prüfe ich in der Installation). Früher gab es dafür eine Property "User.Include" oder so ähnlich, allerdings habe ich in der History zu SciTE4AutoIt keinen Hinweis auf diese Änderung gefunden.