Блокнот ++ Мульти редактирование


112

Как можно использовать несколько курсоров в Notepad ++?

У меня будет пара значений, разделенных табуляцией. Мне нужно написать запрос для всех этих значений. Например, если я получу файл Excel с такими значениями:

1234 xyz pqr
2345 sdf kkk
...

Я хочу скопировать весь этот фрагмент данных в Notepad ++ и написать запрос, вставив сразу все значения.

Как это:

Insert into tbl (1234, xyz) where clm = 'pqr'
Insert into tbl (2345, sdf) where clm = 'kkk'
...

Я делал это с моим предыдущим текстовым редактором Ultraedit. Можно ли это сделать с помощью Notepad ++?


2
Э ... Используйте SublimeText. :)
Правин Кумар Пурушотаман

Я все время делаю это с помощью Notepad ++, но застрял с UltraEdit в этой работе ... Как мне сделать это с помощью UltraEdit? :)
Рон Дженсен - Мы все Моника

Ответы:


166

Да: просто нажмите и удерживайте Altклавишу, щелкните и перетащите, чтобы выбрать строки, столбцы которых вы хотите отредактировать, и начните вводить текст.

Вы также можете перейти в « Настройки»> «Настройки ...» и на вкладке « Редактирование » включить одновременное редактирование, чтобы разрешить одновременное редактирование нескольких отдельных областей или столбцов текста.

Это гораздо более интуитивно понятно, так как вы можете видеть свои изменения в реальном времени по мере ввода.


2013 здесь, v5.2: (больше нет) вкладки редактирования или опции одновременного редактирования.
Wouter

@Wouter: Это все еще есть для меня в v6.2 ... если его нет в v5.2, то может быть что-то еще не так, но я не могу комментировать дальше.
BoltClock

@BoltClock: Круто! Где-то между версиями v5.2 и v6.2 эта функция должна была быть добавлена. Или, может быть, он на мгновение потерялся где-то перед этим :)
Wouter

1
Демонстрацию можно увидеть здесь: notepad-plus-plus.org/features/multi-editing.html . Похоже на старую версию, но я попробовал ее в v6.4.5, и она работала нормально.
brazilianldsjaguar,

11
alt+up/downу меня не сработало. Мне пришлось использовать alt+shift+up/downвместо этого. v6.9.1
AXO

51

В том месте, где вы хотите добавить текст, выполните:

Shift+ Alt+down arrow

и выберите нужные строки. Затем введите. Вводимый вами текст будет вставлен во все выбранные вами строки.


1
Поистине лучший ответ здесь.
Этьен Готье

это даже лучший ответ! не забудьте использовать shift + alt для любого действия, такого как вырезание, копирование!
gaurav

Давно искал эту фичу, спасибо!
michal.hubczyk

46

Вы можете добавлять / редактировать контент на нескольких строках с помощью кнопки управления. Это функция множественного редактирования в Notepad ++, нам нужно включить ее в настройках. Нажмите и удерживайте элемент управления, выберите места, где вы хотите ввести текст, отпустите элемент управления и начните вводить текст, это обновит текст во всех местах, выбранных ранее.

введите описание изображения здесь

Ссылка: http://notepad-plus-plus.org/features/multi-editing.html


1
Мне нравится созданная вами гифка. Спасибо за это.
Жюльен

Именно этого я и хотел. Спасибо.
Соль

23

Notepad ++ теперь также обрабатывает несколько курсоров.

Зайдите в «Настройки» => «Настройки» => «Редактирование» и отметьте «Включить» в «Множественные настройки редактирования». Затем просто используйте Ctrl + щелчок, чтобы использовать несколько курсоров.

Демонстрация функций на официальном сайте здесь : https://notepad-plus-plus.org/features/multi-editing.html


flawless answer2
gaurav


8

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

В вашем сценарии:

  1. Щелкните пункт меню Search \ Replace ...

  2. Заполните поле "Найти" шаблоном поиска:

    ^(\d{4})\s+(\w{3})\s+(\w{3})$
    
  3. Заполните шаблон замены:

    Insert into tbl (\1, \2) where clm = \3
    
  4. Щелкните Replace Allкнопку.

И это все.

NotePad ++ заменить снимок экрана окна


Я использую регулярное выражение для этих типов правок уже более 10 лет, но многие люди исправляют регулярное выражение, которое сбивает с толку или затрудняет изучение
raider33,

6

Самый простой способ решить вашу проблему (без обращения к другому редактору и изучения регулярного выражения) - это записать макрос.

  • Поместите курсор в начало текста, нажмите кнопку «Запись» на ленте, а затем отредактируйте только эту строку текста. Вы можете использовать только клавиши со стрелками или ctrl + клавиши со стрелками для перемещения по символам / словам, а не щелкать мышью. Также полезны клавиши «домой» и «конец».
  • Когда вы закончите с этой строкой, переместите курсор (снова без использования мыши) в начало следующей строки.
  • Нажмите кнопку «Остановить запись».
  • Нажмите кнопку «Воспроизвести макрос», чтобы убедиться, что он работает на следующей строке, как ожидалось.
  • Щелкните "запустить макрос несколько раз", чтобы сделать это снова, и снова, и снова ...: P
Одним из преимуществ этого перед курсорами «мультиредактирования» является то, что вам не нужно вручную щелкать и размещать курсоры в каждой отдельной строке. Второе преимущество заключается в том, что вы можете работать с данными, разделенными табуляцией, которые не имеют согласованного размера / длины - просто используйте ctrl + left / right, чтобы пропустить слова.

Честно говоря, макросы в N ++ спасли мне около года жизни.


1

В Notepad ++ есть только редактирование столбцов. Это не совсем то же самое, что и несколько курсоров.

В Sublime Text есть чудесная реализация этого, возможно, стоит проверить ...
Это относительно новый редактор (2011 г.), который довольно быстро набирает популярность: http://www.google.com/trends/explore#q=Notepad% 2B% 2B% 2C% 20 Sublime% 20 Текст & cmpt = q

Изменить: По-видимому, где-то около Notepad ++ версии 6.x было добавлено редактирование с несколькими курсорами, но в Sublime все еще есть еще несколько дополнительных функций для него, например «выбрать следующее вхождение».


редактирование npp с несколькими курсорами далеко не так хорошо, как многострочное редактирование sublime.
th1rdey3

1
Исправление: редактирование npp с несколькими курсорами далеко не так хорошо, как многострочное редактирование sublime по умолчанию . Библиотека scintilla поддерживает все функции, которые поддерживает Sublime. Любой пользователь может загрузить плагин, такой как nppscripts или pythonscript, чтобы получить доступ к базовой структуре npp и сопоставить эти сценарии с сочетаниями клавиш, имитируя все возвышенные команды. Для тех, кто не хочет утруждать себя настройкой своего редактора, обязательно заплатите за возвышенное.
user2867288

Я понимаю, откуда вы пришли, но несправедливо просить обычного пользователя написать сценарий базовой структуры редактора для нормальной функции. Я бы согласился с вами, если бы плагин уже делал это (если бы у меня было больше времени, я бы его сделал). Также в этом недавнем сообщении sourceforge.net/p/scintilla/feature-requests/1085 говорится, что «выделить следующее» может быть легко сделать, но у вас по-прежнему нет функциональности клавиш со стрелками. Интересно, насколько легко было бы реализовать «пропуск»? Выделите следующий, пропустите следующий, и стрелки иногда могут быть полезны.
ShawnFumo

0

Для этого вы можете использовать плагин ConyEdit. Когда ConyEdit работает в фоновом режиме, выполните следующие действия:

  1. используйте командную строку, cc.spc /\t/ aчтобы разделить текст на столбцы и сохранить их в двумерном массиве.
  2. используйте команду cc.pдля печати, используя содержимое массива.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.