FAQ - SciTE Editor

  • damals, als ich noch in deinem Alter war,

    Was vermutest Du denn, wie alt ich bin :Glaskugel:

  • Bitte verzeih mir, das war nicht auf dich bezogen, ist nur ein Spruch. ;) Ich selbst bin über ein halbes Jahrhundert alt, aber ich sage das auch (besonders gerne) zu Bekannten, die älter sind als ich. Es macht einfach Spaß den Microausdruck im Gesicht des Gegenübers zu sehen, wenn er für eine Millisekunde denkt, "Komm, du bist doch jünger als ich! Oder nicht?" :/


    Was vermutest Du denn, wie alt ich bin :Glaskugel:

    Kann ich nicht. Da bräuchte ich wirklich eine :Glaskugel:Jemanden per INet einzuschätzen ist raten. Das einzige, was ich vermuten würde, wäre über 30, da ich glaube, ein Verantwortungsbewustsein erkennen zu können, das für eine gewisse Lebenserfahrung spricht. Da kann ich mich aber auch irren. :saint:


    (Ich gehe doch mal davon aus, dass BugFix mein Gesülze hier löscht. Oder nicht? *Oh my gosh!*) :huh:

  • Hat sich da in SciTE was geändert?

    Möglich, ich verwende nicht die aktuellste Version :/.

    Kann es ggf. aber auch sein, dass das LUA/Setting-'Gebastel' Deine Installation etwas verbogen hat ;) ?


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."


    Einmal editiert, zuletzt von Musashi ()

  • Meine Version:

    SciTE

    Version 4.1.2

    Feb 13 2019 23:07:51

    by Neil Hodgson.

    Updated by Jos


    LUA habe ich kontrolliert, da ist nur das drin, was original drin war. Die SciteUser.properties habe ich während meiner Tests hierzu ganz entfernt.

  • Andererseits hätte ich genau diese Möglichkeit gerne: 2 Fenster mit derselben Datei um unterschiedliche Bereich der Datei nebeneinander darstellen zu können z.B. für Vergleiche des Codes.

    Eine erste Version dazu hatte ich bereits 2008 erstellt (https://www.autoitscript.com/f…nstance-with-same-script/).

    Die folgende Version berücksichtigt auch, dass die Taskbar unterschiedlich positioniert sein kann:

  • Statt mehrere Dokumente in 1 Editor-Fenster mit mehreren Tabs zu laden, mag ich es lieber, wenn man pro Dokument 1 Editor-Fenster hat. Ich will NICHT ein und das selbe Dokument nochmal öffnen, weder in Einzel-Fenster, noch in Tabs.

    • Anzahl SciTE Instanzen abfragen
    • für jede Instanz: Iteriere durch die Tabs und vergleiche den aktiven Dateinamen mit dem zu öffnenden Dateinamen
    • findest du ihn: aktiviere den Tab
    • findest du ihn nicht: öffne neu

    Die erforderlichen Funktionen zur Abfrage findest du in diversen Beiträgen.

  • Die Versionsnummern der Installation kann man leider nicht direkt mit denen des Setups vergleichen, da in der Installation eine andere Version gezeigt wird als im Namen der Installationsdatei.

    Ich verwende z.B. SciTE v3.6.6 (Installationsdatei: v16.612.1119.0-SciTE4AutoIt3). Eine Ähnlichkeit ist über das Datum möglich. (Oder aber herunterladen, SciTE.exe <Eigenschaften-Version>)


    Du kannst ja mal eine ältere Version installieren und Prüfen ob es dann funktioniert.

  • Anzahl SciTE Instanzen abfragen
    für jede Instanz: Iteriere durch die Tabs und vergleiche den aktiven Dateinamen mit dem zu öffnenden Dateinamen
    findest du ihn: aktiviere den Tab
    findest du ihn nicht: öffne neu

    Iiip! 8| Ich steh ein wenig auf dem Schlauch, und vermute mal, dass du damit meinst, ich solle eine Script schreiben, das das von außen handeln soll? Eigentlich hatte ich gehofft, dass es einfach einen Schalter gibt, den man zuweisen kann. Also z. B.:


    Zitat

    use.tabs=0 <== Dieses "tabs" hat jedoch nichts mit den Dateireiter-"Tabs" zu tun.

    check.if.already.open=1


    Ich weiß, dass das so nicht funktioniert, deshalb frage ich ja. ;) Aber macht nichts, und danke für den Vorschlag! :)


    Ich verwende z.B. SciTE v3.6.6

    Warum so eine alte Version? Hat das Vorteile? :/


    Kann mal jemand mal sagen, ob das Springen in die angegebene Zeile bei ihm/ihr funktioniert, wenn man doppelklickt oder F4 drückt?


    Test-Möglichkeit: In SciTE die AutoIt-Hilfe für "ConsoleWrite" öffnen, das Beispiel 2 öffnen und ausführen, die 5 Sekunden Sleep abwarten. Danach im Ausgabefenster auf eine oder mehrere Zeilen doppelklicken, in denen steht es würde zu einer bestimmten Zeile gesprungen.


    Bei mir sieht die Ausgabe so aus:


  • Warum so eine alte Version? Hat das Vorteile? :/

    JA.

    Wenn man externe Bibliotheken in Lua-Skripten einbinden möchte bedarf das des Befehls require. In neueren SciTE-Versionen funktioniert das nicht mehr (Details s. hier)

    Deshalb:

    - neueste SciTE4AutoIt-Version installieren (damit geänderte Funktionen etc. bekannt gemacht werden)

    - in der Installation die scite.exe gegen eine alte Version austauschen. (3.6.6 funktioniert definitiv, evtl. auch noch die Folgeversion, habe ich aber nicht probiert)

  • - in der Installation die scite.exe gegen eine alte Version austauschen. (3.6.6 funktioniert definitiv, evtl. auch noch die Folgeversion, habe ich aber nicht probiert)

    Ja, mit der Version 3.7.5.0 funktioniert es auch.


    Bei mir funktioniert dein verlinktes Bsp. zu ConsoleWrite auch nicht... bzw. nur die Pink farbene Zeile tut es... wenn du es aber so änderst, dann gehen auch die anderen:

  • Wie kann ich eine "Sitzung" (also z.B. meine aktuell bearbeiteten Dateien) mit wenig Aufwand gleichzeitig öffnen? Ich hätte vermutet, dass das irgendwie mit "Sitzung laden" geht, finde aber nichts in der Hilfe unter "Session" dazu. Wenn ich eine Session speichere und dann die .session anklicke, öffnet sich die Datei zum Lesen. Kann man nicht durch Anklicken die Dateien öffnen? Oder so ewtas wie "Letze Dateien" komplett?

    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl:

  • Wie kann ich eine "Sitzung" (also z.B. meine aktuell bearbeiteten Dateien) mit wenig Aufwand gleichzeitig öffnen?

    Aus SciTE-Menu heraus:

    DE: SciTE Menu Datei ==> Sitzung laden...

    EN: SciTE Menu File ==> Load session...


    Wenn du SciTE4AutoIt3 installiert hast, und nicht nur SciTE-Lite, wird die letzte Sitzung via Lua automatisch geladen. Den Eintrag dazu findest du in der Datei "C:\Program Files (x86)\AutoIt3\SciTE\lua\SciTEStartup.lua"

    LoadLuaFile("LoadSession.lua")


    SciTE mit beliebiger Sitzung starten:

    "C:\Programme (x86)\AutoIt3\SciTE\SciTE.exe" "-loadsession:%1"


    Das Problem mit obiger Syntax besteht allerdings darin, dass, wenn der Pfad (%1) Backslashes (\) enthält, diese mit doppelten Backslashes (\\) maskiert werden müssen.


    Zum Beispiel:

    "C:\Programme (x86)\AutoIt3\SciTE\SciTE.exe" "-loadsession: c:\abc\def\other.session"


    Damit SciTE die Sitzung findet, müsste die Zeile so geändert werden:

    "C:\Programme (x86)\AutoIt3\SciTE\SciTE.exe" "-loadsession: c:\\abc\\def\\other.session"


    Wenn ich eine Session speichere und dann die .session anklicke, öffnet sich die Datei zum Lesen. Kann man nicht durch Anklicken die Dateien öffnen?

    Ja, das ginge z.B. mit:

    assoc .session=SciTE4AutoIt3.File.session

    ftype SciTE4AutoIt3.File.session="C:\Program Files (x86)\AutoIt3\SciTE\scite.exe" "-loadsession:%1"


    ...was aber zu dem oben beschrieben Problem mit den Backslashes (\) und evtl. auch anderen führt, da *.session nicht nur von SciTE benutzt wird, um Sitzungen zu laden/speichern - so z.B. auch AutoHotkey, OneDrive und Excel. Abhilfe könnte man dadurch schaffen, wenn anstelle von SciTE ein Batch oder AutoIt-Script aufgerufen wird, welches die Behandlung der Backslashes erledigt und SciTE dann mit korrigiertem Pfad zur .session startet.


    Ich hätte vermutet, dass das irgendwie mit "Sitzung laden" geht, finde aber nichts in der Hilfe unter "Session" dazu.

    Dann hast du wohl in der falschen Hilfe geguckt, oder aber nur SciTE-Lite und nicht SciTE4AutoIt3 installiert. Denn SciTE4AutoIt3 hat eine eigene Hilfe-Datei:

    "c:\Program Files (x86)\AutoIt3\SciTE\SciTE4AutoIt3.chm"


  • Abhilfe könnte man dadurch schaffen, wenn anstelle von SciTE ein Batch oder AutoIt-Script aufgerufen wird, welches die Behandlung der Backslashes erledigt und SciTE dann mit korrigiertem Pfad zur .session startet.

    So, hier für Mutige die erste Version des AutoIt-Scripts... ich habe das mal als Archiv in den Anhang gepackt, weil es so einfacher ist.


    Damit beim Anklicken einer *.session das AutoIt-Script aufgerufen wird und die angeklickte "SciTE.session" als Parameter übergeben bekommt, muss zuvor eine Verknüpfung mit diesem Dateityp erstellt bzw. diese geändert werden.


    Dies geschieht mit den Befehlen assoc und ftype, die in einer cmd.exe als Administrator ausgeführt werden müssen.


    Normalerweise gibt es keine Verknüpfung für .session... aber das können wir ja überprüfen und dies sähe dann so aus:

    assoc .session

    Dateizuordnung für die Erweiterung .session nicht gefunden.


    Gibt es eine Verknüpfung mit .session... sähe das z.B. so aus:

    assoc .session

    .session=SciTE.session

    In dem Fall können wir uns auch gleich den Wert für ftype anzeigen lassen:

    ftype SciTE.session

    SciTE.session="F:\AutoIt\AutoIt3_Tools\Load_SciTE_Session\SciTE\SciTE.exe" "%1"


    Jedenfalls müssen wir das dann so ändern, wobei die Pfade natürlich angepasst werden müssen:

    assoc .session=SciTE4AutoIt3.File.session

    for compiled AutoIt script ...

    ftype SciTE4AutoIt3.File.session="F:\AutoIt\AutoIt3_Tools\Load_SciTE_Session\Load_SciTE_Session.exe" "%1"

    for uncompiled AutoIt script ...

    ftype SciTE4AutoIt3.File.session="C:\Program Files (x86)\AutoIt3\AutoIt3.exe" "F:\AutoIt\AutoIt3_Tools\Load_SciTE_Session\Load_SciTE_Session.au3" "%1"


    ftype also für die .exe oder die .au3 ausführen, nicht für beide!


    In dem AutoIt-Script speichere ich die alten Werte für assoc und ftype (falls vorhanden) in eine Datei... es sollte also nichts schief gehen.


    Da die Extension *.session aber nicht nur von SciTE genutzt wird, muss der Inhalt geprüft werden, was von dem Script auch gemacht wird. Welche überprüft werden, könnt ihr im Script nachsehen, denn ich will mir hier nicht die Finger wund tippen. ;-)


    Noch was... SciTE kennt folgende Properties, die mit einer Session zu tun haben:

    save.session

    save.session.advanced

    session.loaded

    session.bookmarks

    session.folds

    Welche Bedeutung/Funktion sie haben, könnt ihr der SciTE4AutoIt3-Hilfe entnehmen.


    SciTE4AutoIt3 bringt übrigens auch ein Lua-Script mit, dass auch etwas mit Sessions zu tun hat:

    C:\Program Files (x86)\AutoIt3\SciTE\lua\LoadSession.lua

    Geladen wird es beim Start von SciTE, aktiv wird das Script aber nur, wenn save.session.advanced=1 ist, und dann wird session.loaded auch auf 1 gesetzt, falls es das nicht schon war.


    So, macht damit was ihr wollt...

  • Das ist ja ein Support! Ich denke, ich habe die richtige Version, oder?


    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl:

  • Ich denke, ich habe die richtige Version, oder?

    Hehe, das ist wohl Ansichtssache... wenn du mich fragst, dann nein!


    Warum?

    Weil alle Version > 3.7.5 nicht mehr den Export luaL_register haben, und somit die shell.dll nicht mehr eingebunden werden kann. Dadurch laufen dann quasi alle Lua-Scripte von BugFix nicht mehr, und das sind bei mir einige.

    Deshalb benutze ich noch die Version 3.7.5... unter Programme und Features in Windows 10 wird mir diese als SciTE4AutoIt3 19.102.1901.0 angezeigt.

    Also installiert habe ich das aktuelle SciTE4AutoIt3... zumindest halbwegs aktuell, und dann aber die SciTE.exe durch meine alte 3.7.5 ersetzt.