- Обзор текстового редактора Xed
- Xed продолжает развиваться
- 4 комментария к “ Xed продолжает развиваться ”
- Оставьте комментарий Отменить ответ
- Изучаем процессы в Linux
- Содержание
- Введение
- Атрибуты процесса
- Жизненный цикл процесса
- Рождение процесса
- Состояние «готов»
- Состояние «выполняется»
- Перерождение в другую программу
- Состояние «ожидает»
- Состояние «остановлен»
- Завершение процесса
- Состояние «зомби»
- Забытье
- Благодарности
- Xed linux что это
- About
- Xed Text Editor, очень полная замена Gedit для Ubuntu
- Общие характеристики текстового редактора Xed
- Установить Xed Editor
- Установить на Ubuntu 17.04 и производные
- Установить на Ubuntu 16.10 / 16.04 / Linux Mint 18 и производные
- Удалить Xed
Обзор текстового редактора Xed
Мы часто слышим мнения о текущем состоянии стека программ GTK3. Например, что Gnome Shell или Pantheon из Elementary зашли слишком далеко, упрощаясь ради элегантности, так что средний пользователь иной раз остается в своих любимых программах без ряда ключевых функций. Проект Mint Linux предлагает, пожалуй, лучшие решения для опытных пользователей, желающих оставаться в экосистеме GTK3. Отличным примером является Xed, мощный текстовый редактор — достаточно хороший, чтобы заменить Gedit, Pluma или Code. Мощь Xed раскрывается, как только вы начинаете работать сразу с несколькими текстовыми файлами, когда вам надо ориентироваться, писать код, исправлять опечатки и анализировать синтаксис языков программирования.
Меню View [Вид] — это начальная точка, где можно включить некоторые из расширенных функций Xed. Редактор может отображать боковую панель с двумя вкладками внутри: одна для навигации между открытыми файлами, а другая — со встроенным деревом менеджера файлов. Даже если эта панель отключена, все же достаточно просто перейти от одного файла к другому с помощью вкладок.
Функция Overview map [Обзор] отображает отдаленный вид вашего документа и способствует навигации по длинным файлам, тогда как в меню Tools [Инструменты] хранятся параметры проверки орфографии и статистика документов.
Мы думали, что этих возможностей уже достаточно, чтобы назвать Xed продвинутым редактором, но в Edit > Preferences [Править > Параметры] выяснилось, что предложений и того больше. Xed можно расширить плагинами — некоторые из них установлены, но по умолчанию не активированы. Например, приложение может автоматически сохранять документы, предлагать завершение слова и выделять почти любую разметку и язык. Предпросмотр печати, сравнение файлов, преобразование регистра, вставка даты/времени. сложно и упомнить все функции программы.
Источник
Xed продолжает развиваться
В рамках проекта Mint почти с начала текущего года развивается субпроект X-Apps — набор кросс-десктопных и кросс-платформенных базовых приложений, который предполагается внедрить в качестве штатных в традиционно ориентированные рабочие среды, такие, как Cinnamon, MATE и Xfce.
Одним из существенных составояющих иэтого набора является текстовый редактор Xed, представляющий собой форк Gedit’а, известного. До недавнего времени он практически не отличался от своего прототипа в ранние годы существования того, и не имел никаких отличительных фич. Однако жизнь не стоит на месте, и первая такая фича появилась. Это — панель поиска и замены в стиле собрата Sublime, популярного в некоторых кругах текстового редактора, портированного в Linux из MacOS:
Можно видеть, что теперь отдельное окно поиска и замены не заслоняет более редактируемый текст — обе эти операции выполняются в панели нижней части окна программы, подобно тому как это сделано в Firefox’е (и в большинстве других браузеров, разве что в Opera эта панель расположена вверху). Перемещаться вперёд по тексту в поисах искомой последовательности символов можно просто нажатием клавиши Enter.
Как пишет Clem, на прикручивание такой поисковой строки его вдохновил текстовый редактор Sublime, который применяют многие разработчики проекта Linux Mint. Можно ожидать, что Xed и далее будет заимствовать из него всякие полезные штуковины. И со временем он не будет бледной копией достаточно бледного Gedit’а, а превратиться во всамделишний текстовый редактор, пригодный для использования в мирных целях.
4 комментария к “ Xed продолжает развиваться ”
Алексей, в какой версии Xed появилась фича — панель поиска и замены? В репах пока только версия 1.0.6, в которой по-прежнему всплывающее окошко.
Таня, увы — только в Git-версии пока. Которая у меня не собралась 🙂
Потому и потибрил у Клема картинку, а не свою сделал 🙂
Алексей, могу обрадовать. Сегодня рано утром Xed обновился до прогрессивной версии 1.2.1. Ура.
Таня, спасибо! Весть действительно радостная. Может быть, Гвендаль даже наконец взял тайм-аут в своей личной жизни и исправил наконец ошибку в сборке Cinnamon, которой уже больше месяца.
Ща перегружусь в Cintu и проверю. А то я тоже в Maui по уши закопался.
Оставьте комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник
Изучаем процессы в Linux
В этой статье я хотел бы рассказать о том, какой жизненный путь проходят процессы в семействе ОС Linux. В теории и на примерах я рассмотрю как процессы рождаются и умирают, немного расскажу о механике системных вызовов и сигналов.
Данная статья в большей мере рассчитана на новичков в системном программировании и тех, кто просто хочет узнать немного больше о том, как работают процессы в Linux.
Всё написанное ниже справедливо к Debian Linux с ядром 4.15.0.
Содержание
Введение
Системное программное обеспечение взаимодействует с ядром системы посредством специальных функций — системных вызовов. В редких случаях существует альтернативный API, например, procfs или sysfs, выполненные в виде виртуальных файловых систем.
Атрибуты процесса
Процесс в ядре представляется просто как структура с множеством полей (определение структуры можно прочитать здесь).
Но так как статья посвящена системному программированию, а не разработке ядра, то несколько абстрагируемся и просто акцентируем внимание на важных для нас полях процесса:
- Идентификатор процесса (pid)
- Открытые файловые дескрипторы (fd)
- Обработчики сигналов (signal handler)
- Текущий рабочий каталог (cwd)
- Переменные окружения (environ)
- Код возврата
Жизненный цикл процесса
Рождение процесса
Только один процесс в системе рождается особенным способом — init — он порождается непосредственно ядром. Все остальные процессы появляются путём дублирования текущего процесса с помощью системного вызова fork(2) . После выполнения fork(2) получаем два практически идентичных процесса за исключением следующих пунктов:
- fork(2) возвращает родителю PID ребёнка, ребёнку возвращается 0;
- У ребёнка меняется PPID (Parent Process Id) на PID родителя.
После выполнения fork(2) все ресурсы дочернего процесса — это копия ресурсов родителя. Копировать процесс со всеми выделенными страницами памяти — дело дорогое, поэтому в ядре Linux используется технология Copy-On-Write.
Все страницы памяти родителя помечаются как read-only и становятся доступны и родителю, и ребёнку. Как только один из процессов изменяет данные на определённой странице, эта страница не изменяется, а копируется и изменяется уже копия. Оригинал при этом «отвязывается» от данного процесса. Как только read-only оригинал остаётся «привязанным» к одному процессу, странице вновь назначается статус read-write.
Состояние «готов»
Сразу после выполнения fork(2) переходит в состояние «готов».
Фактически, процесс стоит в очереди и ждёт, когда планировщик (scheduler) в ядре даст процессу выполняться на процессоре.
Состояние «выполняется»
Как только планировщик поставил процесс на выполнение, началось состояние «выполняется». Процесс может выполняться весь предложенный промежуток (квант) времени, а может уступить место другим процессам, воспользовавшись системным вывозом sched_yield .
Перерождение в другую программу
В некоторых программах реализована логика, в которой родительский процесс создает дочерний для решения какой-либо задачи. Ребёнок в данном случае решает какую-то конкретную проблему, а родитель лишь делегирует своим детям задачи. Например, веб-сервер при входящем подключении создаёт ребёнка и передаёт обработку подключения ему.
Однако, если нужно запустить другую программу, то необходимо прибегнуть к системному вызову execve(2) :
или библиотечным вызовам execl(3), execlp(3), execle(3), execv(3), execvp(3), execvpe(3) :
Все из перечисленных вызовов выполняют программу, путь до которой указан в первом аргументе. В случае успеха управление передаётся загруженной программе и в исходную уже не возвращается. При этом у загруженной программы остаются все поля структуры процесса, кроме файловых дескрипторов, помеченных как O_CLOEXEC , они закроются.
Как не путаться во всех этих вызовах и выбирать нужный? Достаточно постичь логику именования:
- Все вызовы начинаются с exec
- Пятая буква определяет вид передачи аргументов:
- l обозначает list, все параметры передаются как arg1, arg2, . NULL
- v обозначает vector, все параметры передаются в нуль-терминированном массиве;
- Далее может следовать буква p, которая обозначает path. Если аргумент file начинается с символа, отличного от «/», то указанный file ищется в каталогах, перечисленных в переменной окружения PATH
- Последней может быть буква e, обозначающая environ. В таких вызовах последним аргументом идёт нуль-терминированный массив нуль-терминированных строк вида key=value — переменные окружения, которые будут переданы новой программе.
Семейство вызовов exec* позволяет запускать скрипты с правами на исполнение и начинающиеся с последовательности шебанг (#!).
Есть соглашение, которое подразумевает, что argv[0] совпадает с нулевым аргументов для функций семейства exec*. Однако, это можно нарушить.
Любопытный читатель может заметить, что в сигнатуре функции int main(int argc, char* argv[]) есть число — количество аргументов, но в семействе функций exec* ничего такого не передаётся. Почему? Потому что при запуске программы управление передаётся не сразу в main. Перед этим выполняются некоторые действия, определённые glibc, в том числе подсчёт argc.
Состояние «ожидает»
Некоторые системные вызовы могут выполняться долго, например, ввод-вывод. В таких случаях процесс переходит в состояние «ожидает». Как только системный вызов будет выполнен, ядро переведёт процесс в состояние «готов».
В Linux так же существует состояние «ожидает», в котором процесс не реагирует на сигналы прерывания. В этом состоянии процесс становится «неубиваемым», а все пришедшие сигналы встают в очередь до тех пор, пока процесс не выйдет из этого состояния.
Ядро само выбирает, в какое из состояний перевести процесс. Чаще всего в состояние «ожидает (без прерываний)» попадают процессы, которые запрашивают ввод-вывод. Особенно заметно это при использовании удалённого диска (NFS) с не очень быстрым интернетом.
Состояние «остановлен»
В любой момент можно приостановить выполнение процесса, отправив ему сигнал SIGSTOP. Процесс перейдёт в состояние «остановлен» и будет находиться там до тех пор, пока ему не придёт сигнал продолжать работу (SIGCONT) или умереть (SIGKILL). Остальные сигналы будут поставлены в очередь.
Завершение процесса
Ни одна программа не умеет завершаться сама. Они могут лишь попросить систему об этом с помощью системного вызова _exit или быть завершенными системой из-за ошибки. Даже когда возвращаешь число из main() , всё равно неявно вызывается _exit .
Хотя аргумент системного вызова принимает значение типа int, в качестве кода возврата берется лишь младший байт числа.
Состояние «зомби»
Сразу после того, как процесс завершился (неважно, корректно или нет), ядро записывает информацию о том, как завершился процесс и переводит его в состояние «зомби». Иными словами, зомби — это завершившийся процесс, но память о нём всё ещё хранится в ядре.
Более того, это второе состояние, в котором процесс может смело игнорировать сигнал SIGKILL, ведь что мертво не может умереть ещё раз.
Забытье
Код возврата и причина завершения процесса всё ещё хранится в ядре и её нужно оттуда забрать. Для этого можно воспользоваться соответствующими системными вызовами:
Вся информация о завершении процесса влезает в тип данных int. Для получения кода возврата и причины завершения программы используются макросы, описанные в man-странице waitpid(2) .
Передача argv[0] как NULL приводит к падению.
Бывают случаи, при которых родитель завершается раньше, чем ребёнок. В таких случаях родителем ребёнка станет init и он применит вызов wait(2) , когда придёт время.
После того, как родитель забрал информацию о смерти ребёнка, ядро стирает всю информацию о ребёнке, чтобы на его место вскоре пришёл другой процесс.
Благодарности
Спасибо Саше «Al» за редактуру и помощь в оформлении;
Спасибо Саше «Reisse» за понятные ответы на сложные вопросы.
Они стойко перенесли напавшее на меня вдохновение и напавший на них шквал моих вопросов.
Источник
Xed linux что это
Xed Text Editor
xed is a small and lightweight text editor.
xed supports most standard editing features, plus several not found in your average text editor (plugins being the most notable of these).
Although new features are always under development, currently xed has:
Some of the plugins, packaged and installed with xed include, among others:
Xed look and feel
Search and Replace feature
Select from several languages in Highlight syntax mode
xed is released under the GNU General Public License (GPL) version 2, see the file ‘COPYING’ for more information.
About
X-Apps [Text] Editor (Cross-DE, backward-compatible, GTK3, traditional UI)
Источник
Xed Text Editor, очень полная замена Gedit для Ubuntu
В следующей статье мы рассмотрим Текстовый редактор Xed. В мире Gnu / Linux есть много текстовые редакторы доступны такие как редакторы командной строки (vi, vim, nano и т. д.) и редакторы графического интерфейса (Gedit, Pen, Kate и т. д.). Как всегда, в мире Gnu / Linux всегда есть место, чтобы попробовать что-то новое, например Xed. Хотя нужно уточнить, что эта программа не нова, так как уже давно доступна пользователям.
Эта программа поддерживает редактирование нескольких текстовых файлов в одном окне (с помощью вкладок), как и любой другой текстовый редактор. Нас обеспечивает поддержку файлов UTF-8, он сравнивает файлы, он также предлагает нам подсветку синтаксиса исходного кода, автоматический и ручной отступ, печать, поддержку предварительного просмотра печати и многие другие стандартные функции.
Текстовый редактор Xed предлагает большинство стандартных функций типичного редактора., расширяя эти базовые функции другими, которые обычно не встречаются в простых текстовых редакторах.
Надстройки, которые мы можем использовать с этой программой, могут расширить функциональность редактора Xed. Некоторые плагины включены в него по умолчанию, чтобы помочь пользователю работать более продуктивно. В настоящее время включает поддержку проверка орфографии, сравнивать файлы, просматривать журнал изменений CVS и настраивать уровни отступов.
Общие характеристики текстового редактора Xed
Этот редактор предложит нам полную поддержку текстов UTF-8. Это также облегчит нам чтение текста через подсветка синтаксиса, автоматический отступ и конфигурация значений этого также будет доступна пользователям.
С помощью этой программы мы можем редактировать удаленные файлы без каких-либо проблем. Это также предоставит нам очень полезную возможность поиска и замены в тексте, который мы редактируем. Поддержка iпечать и предварительный просмотр печати Они также считаются одними из характеристик этой программы. Мы сможем редактировать несколько файлов в одном окне с помощью вкладок.
На этом настройка параметров программы будет завершена. легко настраиваемый. Систему плагинов также можно настроить так, как нам подходит, что дает нам дополнительная поддержка Python.
Среди предустановленные плагины мы собираемся найти: счетчик слов, проверку орфографии, изменение выделенного текста, проводник по файлам, сортировку, вставку даты / времени и возможность создания списка тегов.
Другой интересный вариант, который у нас будет с этим редактором, будет сравнение файлов. Эта опция покажет нам результат, аналогичный тому, который команда diff выдала бы нам в терминале. Это также даст нам возможность увидеть историю файла, который у нас есть.
Те, кому это нужно, смогут ознакомиться с характеристиками этого редактора на своей домашней странице. GitHub.
Установить Xed Editor
Чтобы установить Xed в нашу систему Ubuntu или производные, мы собираемся использовать разные PPA, в зависимости от версии Ubuntu, которую мы используем. Мы собираемся различать их между Ubuntu 17.XX и Ubuntu 16.XX.
Установить на Ubuntu 17.04 и производные
Чтобы установить Xed Text Editor в Ubuntu / Linux Mint, мы собираемся открыть терминал (Ctrl + Alt + T) и вставить в него следующие команды, чтобы получить доступ к программе:
Установить на Ubuntu 16.10 / 16.04 / Linux Mint 18 и производные
Чтобы получить Xed в Ubuntu и его производных, мы собираемся добавить следующий PPA в наш список и установить программу. Чтобы выполнить эту операцию, мы собираемся открыть терминал и написать в нем следующее:
Удалить Xed
Если вы установили это приложение в Ubuntu 17.04 или производных, вы можете удалить его, открыв терминал (Ctrl + Alt + T) и набрав следующее:
С другой стороны, если вы установили эту программу в Ubuntu 16.10 / 16.04 / Mint 18 или производных, вы можете удалить ее, используя следующие команды в терминале (Ctrl + Alt + T):
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Убунлог » Ubuntu » Xed Text Editor, очень полная замена Gedit для Ubuntu
Источник