Вопрос или проблема
Я ищу текстовый редактор для Linux (я использую Ubuntu 22.04.1 LTS), который может сохранять, позволять редактировать и выбирать из списка замены. Я посмотрел вокруг и не могу найти то, что мне нужно.
В данный момент я использую комбинацию Altsearch and replace, расширение Libreoffice, плюс окно поиска и замены Libreoffice, потому что не все выражения работают в вышеупомянутом расширении (хотя оно позволяет использовать список поисков). Это одна из причин, почему я ищу текстовый редактор.
Другой причиной является то, что книги и статьи, изначально отредактированные в Libreoffice, в конечном итоге превращаются в документы md и latex.
Я знаком с BBedit, который был бы идеален, но он доступен только для Mac.
Поэтому я хотел бы иметь возможность использовать текстовый редактор, который:
Имеет графический интерфейс и позволяет
- использовать регулярные выражения
- хранить список выражений поиска и замены с заголовками
- легко редактировать этот список, выбирая, какое выражение поиска и замены используется в данный момент
- искать и заменять в нескольких файлах (это было бы плюсом)
- является многоплатформенным (Mac, Windows, Linux)
- бесплатен и с открытым исходным кодом (хотя, если существует хороший платный редактор, я открыт для этого)
Надеюсь, кто-то сможет помочь.
Я использую VSCode на Windows уже некоторое время для своих нужд редактирования текста. У них, по всей видимости, есть версии для Linux и Macintosh. Он поддерживает поиск и замену в открытых файлах, даже с регулярными выражениями. Он бесплатен на всех платформах, но только вроде как не совсем открытый исходный код. У него также есть широкий спектр плагинов и расширений, которые вы можете применять к своей конкретной разработке, и подсветка синтаксиса для многих текстовых форматов (json, xml, C++, python и т. д.).
Этот плагин, похоже, добавляет возможность делать то, что вы спрашиваете: https://marketplace.visualstudio.com/items?itemName=bhughes339.replacerules
Проверьте редактор atom, много дополнений https://atom.io
, и вы можете писать свои собственные добавления и скрипты, это редактор с возможностью модификации
и он бесплатен и с открытым исходным кодом.
Если вы не можете установить через стандартные
или платные
пакеты
, попробуйте установить через snap
.
Используйте его на OS X, Windows или Linux.
Посмотрите это для установки на ubuntu:
Он не кроссплатформенный (только для Linux), но Shule, похоже, делает то, что вам нужно. Текущая версия 0.1.2 оптимизирована для Xubuntu 22.04.4. Так что он должен работать для вас. Я опишу, как сделать то, что вы хотите, ниже.
После установки и настройки Shule перейдите в Правка->Найти->Редактировать функции регулярных выражений (ere).
Кстати: ere
— это сочетание клавиш для выполнения того же действия (т.е. нажмите меню и введите ere
в появившемся окне).
Затем откроется functions.py, который находится где-то в общих данных Shule.
Этот файл предназначен для определения функций в стиле Python, которые будут выполняться для замены текста по совпадениям регулярных выражений. Однако вы можете предварительно определить регулярные выражения для использования вместе с функцией.
Хотя вы можете назвать всю функцию, предопределенные регулярные выражения ссылаются на номер внутри функции.
Итак, если вы сделаете эту функцию в functions.py и сохраните ее:
name:
#1"""\d+"""
text=self.rrn.random_both()
То каждый раз, когда вы вводите name 1 в поле функции поиска регулярных выражений, он заменит все числа на случайно сгенерированные реальные имена. Если вы просто введете name без единицы, то он сопоставит любое регулярное выражение, которое у вас есть в поле поиска. self.rrn.random_both()
— это метод самого текстового редактора; вы можете просмотреть исходный код, чтобы найти больше методов, если вы хотите поэкспериментировать с ними (вы можете увидеть методы, используемые в меню, посмотрев на код меню, чтобы понять, какие методы они выполняют).
Вот более иллюстративный пример с меньшими отвлекающими факторами:
tester:
#1"""\d+"""
#2""".+"""
text="Hello."
Таким образом, всякий раз, когда вы вводите tester 1
в поле функции поиска регулярных выражений, он будет сопоставлять непрерывные числа и позволять вам заменять их на Hello.
Если вы введете tester 2
в поле функции, он будет сопоставлять целые строки и позволять вам заменять их на Hello.
Однако поле функции существует только в диалоге поиска и замены; его нет в диалоге поиска. Если вы не хотите ничего заменять, вы также можете выполнять поиск из диалога поиска и замены, конечно. Структурируйте свои функции следующим образом:
tester:
#1"""\d+"""
pass
Слово pass просто означает, что вы ничего не делаете; вы просто используете это для поиска регулярного выражения \d+
.
Он не откроет список доступных методов в поле поиска. Вам действительно нужно это помнить. Если вы забудете их, то откройте functions.py снова и посмотрите.
В диалоге поиска и замены обязательно очищайте поле ввода функций перед тем, как использовать что-либо в поле ввода Найти (иначе оно выполнит функцию вместо этого).
Также имейте в виду, что в поле поиска регулярных выражений вы можете отменить и повторить команду, чтобы найти старые регулярные выражения, которые у вас были в текущем сеансе.
Ответ или решение
Для того чтобы найти текстовый редактор, отвечающий вашим требованиям спецификации, я предлагаю рассмотреть несколько популярных решений, доступных на платформе Linux, включая системы с графическим интерфейсом и гибкие функции поиска и замены.
1. Visual Studio Code (VSCode)
Описание:
VSCode – это мощный редактор кода, который предлагает множество функций, которые могут помочь вам в редактировании текстов. Он доступен для всех основных операционных систем (Linux, Windows, MacOS) и является бесплатным.
Возможности:
- Поддержка регулярных выражений для поиска и замены.
- Возможность установки расширений, таких как Replacerules, который позволяет создавать и управлять списком правил поиска и замены.
- Работа с множеством файлов одновременно.
Недостатки:
Несмотря на то, что VSCode имеет открытый исходный код, он не является полностью открытым проектом, что может быть важным для некоторых пользователей.
2. Atom
Описание:
Atom – это редактор, который позиционирует себя как "хакерский" текстовый редактор, который можно настраивать под себя. Он также кросс-платформенный и бесплатный.
Возможности:
- Разграничение по тегам и возможность создания собственных дополнений.
- Поддержка регулярных выражений для поиска и замены.
- Возможность работы с несколькими файлами.
Установка:
Вы можете установить Atom на Ubuntu через стандартные пакеты или с помощью snap
. Подробное руководство по установке доступно здесь.
3. Notepadqq
Описание:
Notepadqq – это текстовый редактор, предназначенный для Linux, который напоминает Notepad++ с поддержкой множества языков программирования.
Возможности:
- Удобный интерфейс и богатый функционал.
- Поддержка регулярных выражений для поиска и замены.
- Подходит для работы с несколькими файлами одновременно.
Установка:
Notepadqq можно установить через apt
пакетный менеджер, например:
sudo apt install notepadqq
4. Geany
Описание:
Geany – это легкий текстовый редактор с функциями интегрированной среды разработки (IDE), который также может быть использован для работы с текстовыми документами.
Возможности:
- Поддержка синтаксической подсветки для множества языков.
- Функции поиска и замены с использованием регулярных выражений.
- Возможность редактирования множественных файлов.
Заключение
Каждый из упомянутых редакторов имеет свои уникальные особенности и преимущества. Visual Studio Code и Atom являются наиболее подходящими вариантами, так как они предлагают множество расширений и функционал, позволяющий сохранять и редактировать список выражений поиска и замены.
Учитывая ваши требования к открытости программного обеспечения и возможность работы на различных платформах, я рекомендую изучить возможности Visual Studio Code и Atom более детально. Удачи в ваших поисках, и пусть ваш опыт редактирования текстов будет продуктивным!