Расширить Notepad ++

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

Что я хочу сделать, это выбрать несколько строк, содержащих слова, щелкнуть правой кнопкой мыши и выбрать пункт меню, например "Запятая отдельно", а затем получить все слова в отдельной разделительной запятой.

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

У меня ограниченные навыки С++.

Update:

Чтобы уточнить, это не более 5 или 6 строк слов, которые мне нужно переформатировать. Проблема в том, что я делаю это как 50 раз в день, поэтому способ ускорить это было бы здорово. Есть ли другое приложение, которое может сделать это для меня?

Update2

Спасибо за ваши ответы. Я попытаюсь создать плагин Notepad ++.

Update3

Кто-нибудь знает об .NET-оболочке для создания плагина Notepad ++? Возможно, это должен быть новый вопрос.

Ответы

Ответ 1

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

Eg. Скажите, что у вас есть это:

apple
pear
banana
grape
orange

Для запятой отдельных строк вы можете перейти к первой строке, затем нажмите ctrl + r (начать запись), затем завершите, удалите, запятую, затем ctrl + r, чтобы остановить запись.

Затем нажмите кнопку управления + p (воспроизведите запись) несколько раз, пока не получите то, что вы хотите. Если я обрабатываю большой файл, я просто удержу его, а затем ctrl + z, если я зашел слишком далеко.

Вы не можете сохранить свой макрос позже, но что-то простое легко сделать снова.

Изменить: На самом деле, оказывается, вы можете сохранить свой макрос позже и даже назначить ему горячую клавишу. Просто запишите макрос, затем перейдите Macro -> Save current recorded macro.

Ответ 2

Теперь вы можете сделать это легко с помощью плагина Python Scripting для Notepad ++.

Просто добавьте script с чем-то вроде

text = editor.getSelText()
text = text.replace(' ', ',')
editor.replaceSel(text)

Назначьте script ярлык или кнопку на панели инструментов, и вы уйдете. Я не совсем понимаю, что вы хотите заменить, но, очевидно, изменение логики script должно быть довольно простым.

Ответ 4

На самом деле в Notepad ++ вы должны использовать эту строку для соответствия одному слову в строке, возможно с завершающими пробелами:

^\<(.*)\> *$

а затем вы заменяете слова \1,

Я попытался сделать это сам, все сработало, но после этого вам нужно переключиться с режима поиска регулярных выражений на расширенные и удалить все \r\n или \n в зависимости от окончаний вашей строки.

Ответ 5

На основании ответа PhiLho:

  • Закрыть Notepad ++
  • Изменить% AppData%\Notepad ++\shortcuts.xml в любом текстовом редакторе, отличном от N ++
  • Найдите тег <Macros> и вставьте внутри кода ниже:

    <Macro name="Lines to comma separated text" Ctrl="no" Alt="yes" Shift="yes" Key="82">
        <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
        <Action type="3" message="1601" wParam="0" lParam="0" sParam="\r\n" />
        <Action type="3" message="1625" wParam="0" lParam="1" sParam="" />
        <Action type="3" message="1602" wParam="0" lParam="0" sParam="," />
        <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
        <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
    </Macro>
    
  • Сохранить, закрыть и открыть Notepad ++ - вы увидите новый макрос в меню "Макро" с ключевым ярлыком, установленным на Alt + Shift + R (легко настроить внутри shortcuts.xml)

Ответ 6

Посмотрим. У меня 5 строк слова. Я их выбираю. Ctrl + H. Проверьте расширенный и в выборе. Найдите "\ r\n", замените на ",", нажмите "Заменить все". Я получил в основном результат, который вы хотите (с дополнительной запятой в конце).

Это то, что вы хотите? Возможно, вы можете сделать макрос из него, я мало знаю об этой возможности (в основном я использую SciTE).