Sublime text найти дубли

Обновлено: 02.07.2024

Notepad++ стал моим первым профессиональным инструментом в веб-разработке и создании сайтов.

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

Регулярные выражения Notepad++

Регулярные выражения могут использоваться в Notepad++ для множества логических операция: сортировка строк, удаление дубликатов, поиск и замена как отдельных символов, так и целых логических конструкций. По сути горизонт возможностей такого функционала не ограничен и зависит только от вашей фантазии по его применению.
Я позволил себе отсортировать регулярные выражения для Notepad++ в порядке их надобности и популярности использования. ?

Примеры и применение регулярных выражений в Notepad++

Согласитесь, весь этот список на вид звучит довольно нудно и напоминает что-то среднее между высшей математикой и программированием. ? Мне стоит привести примеры использования регулярных выражений и символов Notepad++.

Удалить пустые строки в Notepad++

Либо, что конечно же проще, если ваше выражение больше никаких условий не требует, воспользуйтесь пунктом в меню. Edit => Line Operations => Remove empty lines . Там же есть и пункт для удаления пустых строк с пробелом: Containing Blank Characters .

Удалить всё после символа / перед символом в строке в Notepad++

Регулярное выражение удаление всех данных в строке до определенного символа, или их группы я часто использую, например, при сортировке маркетинговых баз с e-mail.

Для того чтобы в Notepad++ удалить всё в строке перед определенным символом, используйте комбинацию .+(искомая-часть). Давайте я разберу подробнее. Например, у нас есть txt файл с почтовыми адресами коллег, по одному адресу в столбик. Кроме того в этой же строке могут содержаться и ФИО человека через пробел, табирование, или через запятую.

И таких контактов с списке у нас 500. Для того чтобы отделить домены, нам понадобится 2 действия в Notepad++, удалить всё в строках до определенного символа, а затем удалить всё в строках после.

Первая регулярное выражение для нас будет .+(@), в поле замены оставляем пустым.

Удалить дубликаты строк в Notepad++

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

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

Второй способ избавится от дублирования строк

Второй способ удалить дубликаты строк с помощью Notepad++ абсолютно не элегантен, но функционален при ежедневном использовании. Навигатор по репозиторию дополнений встроен прямо в ваш Notepad. Просто ставим плагин через меню Plugins => Plugin manager .
Нужный нам плагин называется TextFx Characters.
Не слишком сложно, правда? Устанавливаются плагины автоматически, нужно будет только перезагрузить утилиту. Жмёте установить и активировать.

Функционал плагина местами дублирует многие регулярные выражения в Notepad++, а по-моему мнению собственно на них и основан.

Настройка для удаления дубликатов строк находится в меню: Textfx => Tools => Sort Lines insensetive .

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

Notepad++: плагины и альтернативы.

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

P.S. Если вам была полезна эта статья, оставьте коммент, и я буду знать что двигаюсь в правильном направлении. Или задавайте вопросы! welcome ⬇️⬇️⬇️

Сайт обходится мне в копеечку, и как видите - здесь нет рекламы.
Понравилась статья?
Переведите хотя бы 10 руб:-)
P.S. Если нажать на номер карты - он скопируется!


Фотограф, блогер, специалист по рекламе в интернете. В прошлом веб-дизайнер/разработчик. Веду своё шоу в VK Клипах, люблю рок, джаз, Стивена Кинга и Харуки Мураками.

Как в любом текстовом редакторе, в Sublime Text 2 есть поиск. Он может осуществляется в различных режимах и с учетом различных параметров. Например, только внутри одного файла или по всем файлам проекта, по выделенной области, с учетом регистра или с использованием регулярных выражений.

Обычный поиск

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

Наряду с обычным поиском, существует еще дополнительный Find Incremental Find , который вызывается сочетанием клавиш ctrl i . Его единственное отличие состоит в том, что после нажатия на Enter , поиск остановится на первом найденном совпадении. Какой из вариантов использовать, дело исключительно личных предпочтений.

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

alt r Поиск с использованием регулярных выражений.
alt c Чувствительность к регистру.
alt w Поиск запроса целиком.
Поиск в обратном направлении.
Бесконечный поиск.
Поиск внутри выделенного фрагмента.
Подсвечивать совпадения.
Замена с сохранением регистра символов.
Выводить результат поиска вместе с контекстом.
Использовать буфер.
alt enter Найти все.
ctrl alt enter Заменить все.

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

Поиск и замена

Поиск с заменой мало чем отличается от обычного поиска, кроме самого процесса замены. На чем стоило бы остановится, так это использование регулярных выражений. Если вы используете сложные выражения и вам необходимо подставить результат поиска в замену, то следует использовать следующие сочетания символов \1 , \2 , \3 и так далее в зависимости от подстановки необходимого подвыражения.

Например: выражение <p>(.+?)</p> со строкой замены \1 удалит все теги <p> и оставит текст внтури них нетронутым.

Поиск по файлам

Поиск по всем файлам, которые добавлены в проект. Вызывается нехитрым хоткеем ctrl shift f или из меню Find Find in Files. . К сожалению, отображения процесса поиска, то есть переход от результата к результату, происходит только внутри открытого файла. Для того, чтобы увидеть результат полностью, нужно нажать кнопку Find справа от строки запроса или Enter . Откроется отдельная вкладка с результатами поиска, со строками, в которых найдены совпадения с вашим запросом.

Быстрый поиск

Не всегда нужно вызывать панель поиска и вручную набирать то, что мы хотим найти. Если вам нужно найти что-то, что уже есть в тексте, например, переменную, то установите на нее курсор и нажмите ctrl e . Эта переменная, будет скопирована в буфер поиска и для того, чтобы найти ее следующее вхождение, достаточно просто продолжить, нажав f3 . Если вы хотите найти и выделить сразу все упоминания переменной, нажмите alt f3 .

Отдельно стоит сказать о последовательном поиске и выделении. Если установить курсор на переменную или выделить часть текста и затем нажать ctrl d , то автоматически произойдет несколько действий: копирование строки в буфер поиска, поиск и выделение найденного текста. При повтором нажатии ctrl d будет найдено и выделено следующее вхождение искомого текста, при этом, предыдущее выделение не пропадет. Таким образом, можно параллельно редактировать текст в нескольких местах.

Поиск и замена текста в Sublime Text

Поиск и замена текста в Sublime Text

Здесь слева выбираете разные настройки, а справа вводите необходимые данные для поиска и замены значений, а именно:

Из настроек (иконки слева):

  • Использование регулярных выражений (Alt + R).
  • Учитывать регистр текста или нет (Alt + C).
  • Полное совпадение слова при поиске (Alt + W).
  • Демонстрация контекста для искомого фрагмента (немного кода до и после).
  • Отображение результатов в отдельном окне, а не в обычных вкладках.

Поиск Sublime Text - выбор директории и фильтров

Вместе с заданием нужной директории на диске я определил включение только php файлов, и исключение всех txt.

Вот как выглядит результат:

Поиск Sublime Text - результаты поиска

Таким образом, чтобы осуществить в данной программе поиск и замену вам надо:

Поиск и замена в Sublime Text

Функция поиска и замены данных в WinGrep

Рассмотрю также альтернативный вариант, для тех кто уже работает с WinGrep. Преимуществом софта по сравнению с Sublime Text является то, что его можно запускать с помощью контекстного меню в Windows, вызываемого кликом правой кнопкой мыши. Реально быстро и удобно.

Поиск в WinGrep

Сразу после этого появится всплывающее окно, где нужно будет ввести новую фразу для замены.

Поиск и замены данных в WinGrep

  • найти и заменить текст в файле, который вы выбрали, либо во всех сразу;
  • применить изменения к оригинальным документам или создать новые;
  • выполнять все без каких-либо вопросов или предварительно спрашивать пользователя о том или ином решении.

Настройки замены в WinGrep

Я хочу редактировать несколько строк и каждое слово в этой строке. Например:

Я хочу выделить каждое целое число во всех строках и поставить перед ним «0x», чтобы оно выглядело так:

Я знаю Ctrl + shift +, L чтобы получить курсоры в каждой строке, но как я могу получить курсоры перед каждым числом для одновременного массового редактирования?

Выделите строки и используйте:

  • Windows: Ctrl + Shift + L
  • Mac: Cmd ⌘ + Shift + L

Затем вы можете переместить курсор к содержанию вашего сердца и редактировать все строки одновременно.

Он также называется «Разделить на строки» в меню «Выбор».

Да, но как я могу редактировать каждое число в строках одновременно? Например, если бы я делал только первую строку, я мог бы редактировать каждое число в первой строке сразу? Если это имеет какой-либо смысл Вы не можете - у вас может быть только курсор в одном месте на любой данной строке. Но вы можете переместить его в начало строки, добавить 0x, использовать alt> для перемещения по одному слову и снова добавить 0x. Это неправда - в строке может быть столько курсоров, сколько вы хотите. Все, что вам нужно сделать, это Ctrl-click (в Windows), чтобы разместить их. @MattDMo ДА !! Это именно то, что я искал. Вы случайно не знаете, как сочетать клавиши, чтобы выбрать все их? Я посмотрю вокруг и посмотрю, смогу ли я найти это. когда я использовал Ctrl + Shift + L , он выбирает все строки, но курсор на каждой строке находится либо в начале, либо в конце строки. если я затем нажимаю стрелку влево, пытаясь вернуть все курсоры в начало каждой строки, они перемещают курсоры назад относительно их положения, поэтому они все еще не находятся равномерно в одной и той же позиции в строке. как получить все курсоры в начале строки? (для контекста, я просто пытаюсь добавить [space]*[space] в начале каждой строки).

Используйте несколько курсоров и выбор столбцов.

В вашем случае вам просто нужно поместить курсоры в начале каждого столбца, содержащего «слова».

Linux и Windows

  • Нажмите и перетащите, чтобы выбрать столбцы: Shift + RightMouseBtn
  • Добавьте другие столбцы к выделению, нажав и перетащив: Ctrl + Shift + RightMouseBtn
  • Вычтите столбец (столбцы) из выбора: Alt + Shift + RightMouseBtn
  • Добавить отдельные курсоры: Ctrl + LeftMouseBtn
  • Удалить отдельные курсоры: Alt + LeftMouseBtn

макинтош

  • Нажмите и перетащите, чтобы выбрать столбцы: Option⌥ + LeftMouseBtn
  • Добавьте другие столбцы к выделению, нажав и перетащив: Option⌥ + LeftMouseBtn
  • Вычтите столбец (столбцы) из выбора: Cmd⌘ + Option⌥ + shift + LeftMouseBtn
  • Добавить отдельные курсоры: Cmd⌘ + LeftMouseBtn
  • Удалить отдельные курсоры: Cmd⌘ + Option⌥ + shift + LeftMouseBtn

Затем отредактируйте по мере необходимости. В вашем случае, типа 0 , x .

Вы также можете перемещаться по мере необходимости до конца или начала слов, выбирать слова и заключать их в кавычки или круглые скобки и т. Д.

Работал для меня на OS X + Sublime build 3083:

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

  1. Cmd + F (Найти)
  2. Regexp: [^ ]+ (или \d+ , или как вы предпочитаете)
  3. Option + F (Найти все)
  4. Редактировать это

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

Плагин не требуется. Используйте Alt + Enter в конце для Linux.

Я столкнулся с той же проблемой в Linux, что я сделал, чтобы выбрать весь контент (Ctrl-A) и затем нажать Ctrl + Shift + L, он дает вам курсор на каждой строке, а затем вы можете добавить аналогичный контент для каждого столбца ,

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

PS: - Если вы хотите выбрать прямоугольный набор данных из текста, вы также можете нажать Shift и удерживать правую кнопку мыши, а затем выбрать данные в прямоугольной форме. Затем нажмите CTRL + SHIFT + L, чтобы навести курсор на каждую строку.

Windows: я предпочитаю Alt + F3 для поиска строки и одновременного изменения всех экземпляров строки поиска.

Alt + F3 работает и в Linux, и с Sublime Text 3. Это быстрый и простой способ редактирования той же строки в файле.

В Windows я предпочитаю Ctrl + Alt + Down .

Он выбирает строки одну за другой и автоматически запускает режим многострочного редактора. Это немного быстрее, таким образом. Если у вас есть много строк для редактирования, тогда лучше выбрать текст и Ctrl + Shift + L .

Читайте также: