Як видалити певні рядки в Notepad ++?


94

Я очищаю деякі кодові файли (C #) і хочу видалити регіони. І я хотів би видалити всі рядки із рядком "#region". Це лише приклад, і я можу подумати ще про кілька застосувань, але чи можливо це взагалі?


2
У мене виникає спокуса проголосувати це питання не за темою ... В основному це питання про блокнот ++ та конкретну схему роботи, але не обов’язково пов’язану з програмуванням: /
Андреас Нідермайр

@AndreasNiedermair погоджується
ім'я

Відповіді:


39

Ви можете скористатися меню Пошук -> Замінити ... ( Ctrl+ H).

Він має функцію регулярного виразу для заміни. Ви можете використовувати регулярний вираз, який відповідає #region, а також будь-що інше, що є на рядку, і замінити його порожнім пробілом.


Дякую, я зробив це, і це працює. Але зараз я намагаюся замінити \ n \ n лише одним \ n, але, здається, не працює, будь-які ідеї?
Rismo

1
використовувати розширений пошук для заміни евакуаційних послідовностей (перемикач трохи вище регулярного виразу)
Джон Т

Дякую Джон. Я зробив це і працюю для одного розриву рядка \ n, але не для двох. Я шукаю \ n \ n і замінюю його на \ n, але це не працює. Це працює для вас?
Rismo

1
Якщо ви набрали документ у вікнах, закінчення рядків будуть \ r \ n. Закінчення рядків стилю UNIX - \ n.
Джон Т

5
Також щойно помітив, що TextFx -> TextFx Edit -> Delete Surplus Blank Lines робить те саме :)
Rismo

278

Блокнот ++ v6.5

  1. Меню пошуку -> Знайти ... -> Вкладка Позначити -> Знайдіть, що: текст пошуку , позначте Закладка , а потім Позначити все . При цьому буде додано всі рядки із пошуковим терміном у закладки, на полі ви побачите сині кола.

  2. Потім меню Пошук -> Закладка -> Видалити закладки . Буде видалено всі рядки із закладками.

Ви також можете використовувати регулярний вираз для пошуку. Цей метод не призведе до порожнього рядка, як у Джона, і фактично видалить рядок.

Старіші версії

  1. Меню пошуку -> Знайти ... -> Знайти що: текст пошуку , позначте рядок Закладка та натисніть Знайти все .
  2. Потім пошук -> Закладка -> Видалити закладки

8
Дякую! Ого, я не знав, що NP ++ це зробив .. чудова економія часу. Знайти та закласти рядки + видалити рядки. Дивовижно. Дякую!!
Метью М.

який хак, чому я не можу просто регулярний вираз замінити \ r \ n на "" :(
felickz

13
Це одна з тих маленьких дорогоцінних каменів, яку я знаходжу там, де я хотів би підтримати більше 1. Не можу сказати вам, скільки часу я витратив за ці роки, ніколи не усвідомлюючи, що це було доступно! Єдина проблема зараз, я думаю, мені потрібно бути більш продуктивним ...
Мілнер,

1
Якщо ви шукаєте це. "Позначити" тепер має власну вкладку у контекстному меню пошуку.
bunnybare

1
@bunnybare, дякую. Я оновив відповідь для останньої версії.
Рей

4

Ось спосіб, який повністю видаляє рядки, що містять "YOURTEXT":

  • Відкрийте діалогове вікно Замінити
  • Введіть такий рядок пошуку: .*YOURTEXT.*[\r]?[\n](замініть YOURTEXT своїм текстом)
  • Увімкнути "Регулярний вираз"
  • Вимкнути ". Відповідає новому рядку"

Наведений регулярний вираз відповідає кінцевим рядкам Windows і Unix.

Якщо ваш текст містить символи, що мають спеціальне значення для регулярних виразів, наприклад зворотну косу риску, вам потрібно буде їх уникнути.


Чому ви використовуєте клас символів для одного символу?
Тото

4

Це найпоширеніша функція Notepad ++, яку я використовую для оновлення коду.

Все, що вам потрібно зробити, це:

  • Виберіть загальний рядок, який присутній у всіх рядках.
  • Натисніть Ctrl +F
  • На вкладці Позначити вставте повторюваний рядок і поставте прапорець біля рядку Закладка .
  • Натисніть на Mark All
  • Тепер перейдіть до меню ПошукЗакладкаВидалити закладки

Ви можете звернутися за цим посиланням для ілюстративного пояснення.

http://www.downloadorinstall.com/best-notepad-tips-and-tricks-for-faster-work-and-development/


Здається, посилання порушено (або, можливо, потрібна страшна кількість коду JavaScript).
Пітер Мортенсен,

2

Відповідь Якова на Джона Т ідеально працює, щоб видалити весь рядок, і ви можете знайти у файлах із цим. Обов’язково поставте прапорець "Регулярний вираз" унизу.

Рішення: ^.*#region.*$


2
він сказав, що хоче видалити рядок, а не замінити його чимось
felickz

1

Дослідіть, який ваш EOL, \ n або \ r \ n. Потім .*#region.*\r\nнічого не замінюйте в режимі регулярного виразу.



0

За допомогою регулярного виразу та пошуку та заміни ви можете видалити всі рядки, що містять #region, не залишаючи порожніх рядків. Тому що чомусь метод Рей не працював на моїй машині, яку я шукав(.*#region.*\n)|(\n.*#region.*) і залишив поле заміни порожнім.

Цей регулярний вираз гарантує, що якщо #region в першому рядку знайдено, закінчується новий рядок буде видалено, а якщо знайдено в останньому рядку, попередній новий рядок буде видалено.

Тим не менше, рішення Рей краще, якщо воно працює для вас.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.