
Diskussion zu: FAQ SciTE Editor
- Professor Bernd
- Unerledigt
-
-
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.
-
Habe ich vor kurzem mit der letzten AutoIt-Version bekommen, die ich hier im Homeoffice neu installiert habe - glaube ich zumindest. Wundert mich jetzt nicht, dass so einiges bei mir anders war. Also SciTE neu aufsetzen - wie am sichersten und richtig?
-
Habe ich vor kurzem mit der letzten AutoIt-Version bekommen
Dann hättest du nur die SciTE-Lite... und die kannst du vergessen. Ob dem so ist, siehst du, wenn dir in Windows 10 unter Programe und Features keine SciTE4AutoIt3 angezeigt wird. Denn SciTE4AutoIt3 musst du separat installieren! Hier bekommst du es her: SciTE4AutoIt3 und dort wird auch erklärt, wie du es installieren musst. Wo du die ältere Version findest, kann ich momentan nicht sagen, aber notfalls kannst du sie von mir bekommen.
Also SciTE neu aufsetzen - wie am sichersten und richtig?
Das wie war ja schon geklärt... wie am sichersten... schwer zu beantworten, kommt auf deine Installation an, bzw. was du daran geändert hast... aber wenn du folgende Verzeichnisse sicherst, sollte nichts schief gehen:
Halt, noch besser... hier kannst du sehen, wie ich es mache und hast somit auch gleich die Verzeichnisse... oder du benutzt meinen Batch... musst dann nur die Pfade anpassen.
Code: AutoIt3_Backup.cmd
Alles anzeigen@echo off & setlocal & cls :: AutoIt3_Backup.cmd :: xcopy /E /I /H /R /Y "c:\Users\ghost\AppData\Local\AutoIt v3\*.*" b:\_Backup\AutoIt3\AutoIt3_Appdata :: xcopy /E /I /H /R /Y "f:\_Archive\_Programmieren\AutoIt3\*.*" b:\_Backup\AutoIt3\AutoIt3_Archive :: xcopy /E /I /H /R /Y "c:\Program Files (x86)\AutoIt3\*.*" b:\_Backup\AutoIt3\AutoIt3_Programm :: xcopy /E /I /H /R /Y "f:\_Scripts\AutoIt\*.*" b:\_Backup\AutoIt3\AutoIt3_Scripts set AU3_Appdata="c:\Users\ghost\AppData\Local\AutoIt v3" set AU3_Archive="f:\_Archive\_Programmieren\AutoIt3" set AU3_Programm="c:\Program Files (x86)\AutoIt3" set AU3_Scripts="f:\_Scripts\AutoIt" set SaveAs=b:\_Backup\AutoIt3\AutoIt3_Backup_%date:~6,4%.%date:~3,2%.%date:~0,2%_%time:~0,2%.%time:~3,2%.%time:~6,2%.7z set SaveAs=%SaveAs: =0% :: echo %SaveAs% 7z.exe a -spf %SaveAs% %AU3_Appdata% %AU3_Archive% %AU3_Programm% %AU3_Scripts% timeout /T 3
-
Habe nur auf Deutsch umgestellt und "unused vars" eingefügt - ich habe SciTE immer nur oberflächlich benutzt und gar nicht gewusst, welche nützlichen Funktionen schon implementiert sind
-
Kannst Du mir auch noch kurz das Versioning erklären? Ich bin im Moment so ins Programmieren vertieft, dass ich die Anleitung dazu, weil nicht sofort verstanden, erstmal beiseite gelegt habe.
-
Kannst Du mir auch noch kurz das Versioning erklären?
Hm, ich denke mal, du meinst das hier: Using SVN Versioning on a local Computer
Ich benutze allerdings eine einfachere Lösung von BugFix , da ich ein Einzelkämpfer bin: TimeStamp - erweitert zu kleiner Versionsverwaltung für (.au3 und .lua) alle Typen
Das sieht dann etwa so aus:
AutoIt
Alles anzeigen;-- TIME_STAMP 2020-05-20 17:16:44 v 0.1 #include <WinAPIConv.au3> Global $g_iOutEncoding = Int(StringRegExpReplace(FileRead(@LocalAppDataDir & '\AutoIt v3\SciTE\SciTEUser.properties'), '(?s).+\Routput\.code\.page=(.+?)\R.*', '\1')) Global $g_iConOutEncoding = $g_iOutEncoding Local $sPath = @ScriptDir & '\test.txt', $sFile, $hFile = FileOpen($sPath, $FO_READ + $FO_ANSI) ; $FO_READ (0), $FO_BINARY (16), $FO_UTF8 (128), $FO_UTF8_NOBOM (256), $FO_ANSI (512) $sFile = FileRead($hFile) FileClose($hFile) If $sFile = '' Then ConsoleWrite('! Error $hFile = ' & $hFile & ' FileRead('&$sPath&')' & @CRLF) Exit 1 EndIf
Es können folgende Marker gesetzt werden (direkt hinter die aktuelle Versionsnummer):
- v Subversionsnr. wird um 1 erhöht
- V Mainversionsnr. wird um 1 erhöht, Subversionsnr. wird auf 0 gesetzt
- n die autom. Zählung ist nicht aktiv - aber eine per Hand eingetragene Änderung der Versionsnr. wird übernommen
Steht aber auch alles sehr gut erklärt auf der Seite...
-
Hallo
Vielen Dank an Bitnugger für Post #34
Die Funktion "jump to line" ist dort sehr gut erklärt.
Fand sonst kaum was darüber.
Gruß M.
-
Wie kann man in SciTE4AutoIt3 eine weitere Hilfedatei einbinden, z.B. für Lua?
Die Hilfe soll immer mit F1 aufgerufen werden, also die jeweils entsprechende Hilfe für Au3- und Lua-Scripts.
-
Ok, ich kriegs nicht gebacken. Damit der Thread hier nicht unnötig aufgebläht wird, werde ich dafür einen eigenen Thread erstellen.
Im Moment macht mich was anderes fix und fertig: Ich hasse es, wenn ein Programm macht, was ich sage, anstatt was ich meine. Zum Beispiel wenn du jemandem sagst: "schmeiß mal die Fernbedinung rüber" und du dann in Deckung gehen musst.
Es geht um das Ein-Auskommentieren von Code. SciTE nimmt "Block Comment or Uncomment" viel zu wörtlich und toggled jede einzelne Zeile in einem markierten Block, anstatt den ganzen Block auszukommentieren. Auskommentiere Zeilen kommentiert es ein, einkommentierte Zeilen kommentiert es aus. Das nervt gewaltig!
Aus
local sel = props["CurrentSelection"] \
if sel == "" then manual = "file:///C:/CODE/Lua/doc/lua5.3/manual.html" end \
#~ shell.exec('"'..chrome..'" "'..manual..sel..'"')
#~ os.execute('start "'..WaterFox..'" "'..manual..sel..'"')
command.help.subsystem.$(file.patterns.lua)=3
wird
#~ local sel = props["CurrentSelection"] \
#~ if sel == "" then manual = "file:///C:/CODE/Lua/doc/lua5.3/manual.html" end \
shell.exec('"'..chrome..'" "'..manual..sel..'"')
os.execute('start "'..WaterFox..'" "'..manual..sel..'"')
#~ command.help.subsystem.$(file.patterns.lua)=3
Wie stelle ich ein, dass es einen ganzen Block auskommentiert, wenn die erste Zeile des markierten Blocks einkommentiert ist?
-
Es geht um das Ein-Auskommentieren von Code. SciTE nimmt "Block Comment or Uncomment" viel zu wörtlich und toggled jede einzelne Zeile in einem markierten Block, anstatt den ganzen Block auszukommentieren. Auskommentiere Zeilen kommentiert es ein, einkommentierte Zeilen kommentiert es aus. Das nervt gewaltig!
Du befindest dich dort in einer *.properties - Datei. Da gibt es keinen Blockkommentar! Jede Zeile wird deshalb mit einem Kommentarzeichen versehen.
-
In Au3 Dateien ist es aber genauso.
-
In Au3 Dateien ist es aber genauso.
Dann prüfe mal deine Einstellungen. So sollte es in etwa aussehen:
-
Leider keine Änderung. Funktioniert es denn bei dir? Beispiel:
AutoIt
Alles anzeigenWhile 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop ;~ Case $idCOLORREF ;~ _ShowChoice($hGUI, $idMemo, 0, _ChooseColor(0, 255, 0, $hGUI), "Gewählte COLORREF-Farbe: ") Case $idBGR _ShowChoice($hGUI, $idMemo, 1, _ChooseColor(2, 0x808000, 1, $hGUI), "Gewählte BGR-Farbe: ") Case $idRGB _ShowChoice($hGUI, $idMemo, 2, _ChooseColor(2, 0x0080C0, 2, $hGUI), "Gewählte RGB-Farbe: ") EndSwitch WEnd EndFunc ;==>Example
Wenn ich nun den ganzen Block markiere (von While bis WEnd) und den Shortcut für Blockkommentar drücke, wird alles was auskommentiert ist einkommentiert und umgekehrt. Ist das bei dir anders?
-
Ist das bei dir anders?
Ja - obiger Code komplett markiert: Strg+Shift+Q ergibt
AutoIt
Alles anzeigen#cs While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop ;~ Case $idCOLORREF ;~ _ShowChoice($hGUI, $idMemo, 0, _ChooseColor(0, 255, 0, $hGUI), "Gewählte COLORREF-Farbe: ") Case $idBGR _ShowChoice($hGUI, $idMemo, 1, _ChooseColor(2, 0x808000, 1, $hGUI), "Gewählte BGR-Farbe: ") Case $idRGB _ShowChoice($hGUI, $idMemo, 2, _ChooseColor(2, 0x0080C0, 2, $hGUI), "Gewählte RGB-Farbe: ") EndSwitch WEnd EndFunc ;==>Example #ce
Hast du evtl. deinen Shortcut für Blockkommentar überschrieben?
Edit:
Allerdings hat diese Funktion noch nie als Toggle funktioniert - du kannst also nur den Blockkommentar setzen.
-
obiger Code komplett markiert: Strg+Shift+Q ergibt
Du hast den Befehlt für "Stream Comment" benutzt, nicht "Block Comment!.
Wenn meine Lua Kenntnisse mal groß genug sind, schreibe ich vielleicht eine Routine, die sich nur an der ersten markierten Zeile orientiert. Ist die erste Zeile einkommentiert, werden alle markierten Zeilen auskommentiert, egal ob sich schon auskommentiert sind, oder nicht.
-
Nach zweimaligem Drücken von Strg+Shift+Q sollten die Markierungen wieder weg sein, sind sie aber nicht... sondern werden verdoppelt.
-
Du hast den Befehlt für "Stream Comment" benutzt, nicht "Block Comment!.
Genau, weil BlockComment nicht funktioniert. Hatte ich mich gar nicht dran erinnert, dass dem so ist und ich das umgestellt hatte.
Ich werd mal eine ordentliche Block-Comment-Toggle-Funktion schreiben.
schreibe ich vielleicht eine Routine, die sich nur an der ersten markierten Zeile orientiert. Ist die erste Zeile einkommentiert, werden alle markierten Zeilen auskommentiert, egal ob sich schon auskommentiert sind, oder nicht.
Dann wirst du bald merken, dass das kontraproduktiv ist. In 99% aller Fälle (jedenfalls bei mir) kommentierst du Zeilen aus, weil du eine andere Codezeile einfügst und die vorige dann auskommentierst. Du switchst also zwichen den beiden Zeilen (oder auch Zeilenblöcken). Und da ist es natürlich super, wenn du alles markierst und die Kommentierung dann wechselt.
-
Und da ist es natürlich super, wenn du alles markierst und die Kommentierung dann wechselt.
Das stimmt wohl und kommt auch bei mir häufig vor. Aber ebenso häufig kommt es vor, dass ich beim Testen z.B. eine ganze Funktion dupliziere, die alte auskommentiere und in der neuen arbeite. Die alte kommentiere ich komplett aus und benutze sie als Orientierung, während ich in der neuen Funktion nach herzenslust neues reinschreiben oder altes löschen kann. Wenn ich dann vor lauter testen und recherchieren nicht mehr weiß, wie der Ausgangs-Code war, ist die alte auskommentierte Funktion ja direkt darüber und ich kann nachsehen.
Ich werd mal eine ordentliche Block-Comment-Toggle-Funktion schreiben.
Prima!
-
Damit der Thread hier nicht unnötig aufgebläht wird, werde ich dafür einen eigenen Thread erstellen.
Thread erstellt: "Lua - Grundkenntnisse" zum Thema "Wie kann man in SciTE4AutoIt3 eine weitere Hilfedatei einbinden, z.B. für Lua?" und zum Einbinden eines Ordners für eigene Scripts.