2010-08-10 5 views
77

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

У меня будет пара значений с разделителями. Мне нужно написать запрос для всех этих значений. Например, если я получаю 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 ++?

+0

Er ... Используйте SublimeText. :) –

+0

Я делаю это все время с Notepad ++, но застрял с UltraEdit в этой работе ... Как мне это сделать с помощью UltraEdit? :) –

ответ

17

Вы можете использовать Edit > Column Editor..., чтобы вставить текст в текущей строке и следующих строках. Ярлык: Alt + C.

140

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

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

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

+0

2013 здесь, v5.2: нет вкладки редактирования или многостраничного редактирования. – Wouter

+0

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

+0

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

1

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

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

Edit: Видимо где-то около Редактирование нескольких заметок в Notepad ++ версии 6.x добавлено, но в Sublime есть еще несколько дополнительных функций, например «select next emerg».

+0

Редактирование npp с несколькими курсорами нигде не приближается, как многострочное редактирование возвышенного. – th1rdey3

+1

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

+0

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

2

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

Ref: http://notepad-plus-plus.org/features/multi-editing.html

7

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

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

  1. Нажмите пункт меню Поиск \ Заменить ...

  2. Заполните 'Найти то, что' поля с шаблоном поиска:

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

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

И все.

NotePad++ replace window screenshot

5

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

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

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

12

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

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

12

В том месте, где вы хотите добавить текст, сделайте следующее:

Shift + Alt + down arrow

и выберите строки, которые вы хотите. Затем введите. Текст, который вы вводите, вставляется во все выбранные вами строки.

+0

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