Как создать макрос в Notepad++, который сохранит файл под другим именем?

Как создать макрос в Notepad++, который сохранит файл под другим именем?

Как в Notepad++ создать макрос, который сохранит текущий файл под другим именем?

Когда я использую макрорекордер в Notepad++, похоже, он не записывает ни одной Saveоперации.

В идеале я хотел бы, чтобы Notepad++ сохранил текущий файл в том же месте, где он был открыт, но удалил последние 9 символов в имени файла. Например, если текущий файл:

c:\foo\bar123456789.c

Я хотел бы сохранить макрос Notepad++ как:

c:\foo\bar.c

(перезаписывая любой файл с таким именем)

Это идеальная цель, но даже если мне удастся сделать макрос Notepad++, близкий к этому, это будет улучшением по сравнению с выполнением этой операции вручную.

решение1

Вы можете запустить скрипт Python в плагине PythonScript.

Если он еще не установлен, следуйте этомугид

Создать скрипт (Плагины >> PythonScript >> Новый скрипт)

Скопируйте этот код и сохраните файл (например 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);
  • Откройте файл, который вы хотите изменить.
  • Запустить скрипт (Плагины >> PythonScript >> Скрипты >> заменить)
  • Сделанный

Объяснение регулярного выражения:

.{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

Если естьвсегда9 символов для удаления, использовать .{9}вместо.{1,9}

Связанный контент