Wie erstelle ich in Notepad++ ein Makro, das eine Datei unter einem anderen Namen speichert?

Wie erstelle ich in Notepad++ ein Makro, das eine Datei unter einem anderen Namen speichert?

Wie können Sie in Notepad++ ein Makro erstellen, das die aktuelle Datei unter einem anderen Namen speichert?

Wenn ich den Makrorekorder in Notepad++ verwende, scheint er keine SaveVorgänge aufzuzeichnen.

Idealerweise möchte ich, dass Notepad++ die aktuelle Datei am selben Ort speichert, an dem sie geöffnet wurde, aber die letzten 9 Zeichen im Dateinamen löscht. Wenn die aktuelle Datei beispielsweise lautet:

c:\foo\bar123456789.c

Ich möchte, dass ein Notepad++-Makro es wie folgt speichert:

c:\foo\bar.c

(überschreibt alle Dateien mit diesem Namen)

Das ist das ideale Ziel, aber selbst wenn ich es mit einem Notepad++-Makro hinbekomme, das dem nahe kommt, wäre das schon eine Verbesserung gegenüber der manuellen Ausführung dieses Vorgangs.

Antwort1

Sie können ein Python-Skript innerhalb des PythonScript-Plugins ausführen.

Wenn es noch nicht installiert ist, folgen Sie diesenFührung

Erstellen Sie ein Skript (Plugins >> PythonScript >> Neues Skript)

Kopieren Sie diesen Code und speichern Sie die Datei (zum Beispiel replace.py):

import re

# Define the new filename
newFilename = notepad.getCurrentFilename()

# remove up to 9 characters before extension
newFilename = re.sub(r'.{1,9}(?=\.\w+$)', '', newFilename)

# Save current file with new name
notepad.saveAs(newFilename);
  • Öffnen Sie die Datei, die Sie ändern möchten
  • Führen Sie das Skript aus (Plugins >> PythonScript >> Skripte >> ersetzen)
  • Erledigt

Regex-Erklärung:

.{1,9}          # 1 upto 9 any characters
(?=             # positive lookahead, make sure we have after (without capturing)
    \.              # a dot
    \w+             # 1 or more word characters
  $               # end of string
)               # end lookahead

Wenn da iststets9 Zeichen zu entfernen, verwenden Sie .{9}statt.{1,9}

verwandte Informationen