Как в 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}