1

Я хочу определить макрос Notepad++, который принимает любую строку, содержащую "foo", и создает свои новые версии, изменяя только foo на "bar1", "bar2" и т.д.

так что если мой файл содержит

abc_foo_def

когда я запускаю макрос, я хочу получить

abc_foo_def
abc_bar1_def
abc_bar2_def
abc_bar3_def

Испытание 1

Я попытался макрос с Ctrl + D (дублирующая строка), перейти к нижней строке и начать "foo", нажмите удалить 3 раза, затем напишите "bar1", повторяйте до bar3. Обратите внимание, что даже если бы это работало, это не сработало бы для нескольких "foo" в строке ввода. Однако это не работает, как ожидалось.

Испытание 2

Другой макрос был опробован с дублированием, выбрав вторую строку, Search & Replace "foo" на "bar", с установленным флажком In Selection . Но я думаю, что это не относится к макросам.

Поэтому я ищу надежный способ. Спасибо за любую помощь!

PS 1

Я также в порядке с решением без Notepad++. (Excel, Word, что угодно)

PS 2

Моя входная строка может содержать более одного "foo". Каждый должен быть заменен на "barx"

1 ответ1

0

Я не уверен, почему ваш Trial 2 провалился. Возможно, вы использовали мышь при записи макроса? Я уверен, что вы получите лучшие результаты, если будете использовать клавиатуру только при записи макроса.

Я только что записал следующий макрос в Notepad++ 6.6.9. Это работает для переменного числа строк "foo" в исходной строке.

  • Установить курсор в начале строки источника

Запись:

  • Ctrl+D
  • Ctrl+D
  • Ctrl+D
  • Главная
  • Shift+End
  • Ctrl+H (для поиска и замены)
  • Найдите "foo" и замените на "bar1"; выберите "In Selection"; нажмите Заменить все
  • Закрыть диалог
  • Главная
  • Shift+End
  • Ctrl+H (для поиска и замены)
  • Найдите "foo" и замените на "bar2"; выберите "In Selection"; нажмите Заменить все
  • Закрыть диалог
  • Главная
  • Shift+End
  • Ctrl+H (для поиска и замены)
  • Найдите "foo" и замените на "bar3"; выберите "In Selection"; нажмите Заменить все
  • Закрыть диалог

Завершить запись

Вот XML из %AppData%\Notepad++\shortcuts.xml:

<Macro name="SuperUser_Q_Macro" Ctrl="no" Alt="no" Shift="no" Key="0">
  <Action type="0" message="2469" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2469" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2469" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2453" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2315" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="foo" /> 
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="bar1" /> 
  <Action type="3" message="1702" wParam="0" lParam="898" sParam="" /> 
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" /> 
  <Action type="0" message="2453" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2315" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="foo" /> 
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="bar2" /> 
  <Action type="3" message="1702" wParam="0" lParam="898" sParam="" /> 
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" /> 
  <Action type="0" message="2453" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> 
  <Action type="0" message="2315" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="foo" /> 
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" /> 
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="bar3" /> 
  <Action type="3" message="1702" wParam="0" lParam="898" sParam="" /> 
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" /> 
</Macro>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .