Как в Notepad ++ создать макрос, который сохранит текущий файл под другим именем?
Когда я использую средство записи макросов в Notepad ++, кажется, что он не записывает никаких Save операция.
В идеале я хотел бы, чтобы Notepad ++ сохранял текущий файл в том же месте, где он был открыт, но удалял последние 9 символов в имени файла. Например, если текущий файл:
c:foobar123456789.c
Я хотел бы, чтобы макрос Notepad ++ сохранил его как:
c:foobar.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}

Большое спасибо. Выглядит отлично. Проголосовали. Сценарий легко назначить сочетанию клавиш, но можно ли его запустить как часть макроса (вероятно, последняя команда в макросе)?
— RockPaperLz — Маска или шкатулка
4 часа назад
@ RockPaperLz-MaskitorCasket: Пожалуйста, рад помочь. Я не пробовал запускать его в макросе, но уверен, что это можно сделать.
— Тото
4 часа назад