- Как установить pluma в Ubuntu / Debian
- Установка:
- Подробная информация о пакете:
- Зависимости:
- Pluma linux ��� ���
- pluma (текстовый редактор) — pluma (text editor)
- СОДЕРЖАНИЕ
- Функции
- Список возможностей
- Список плагинов
- Архитектура
- Символы Unicode: о чём должен знать каждый разработчик
- Введение в кодировку
- Краткая история кодировки
- Проблемы с ASCII
- Что такое кодовые страницы ASCII?
- Безумие какое-то.
- Так появился Unicode
- Unicode Transform Protocol (UTF)
- Что такое UTF-8 и как она работает?
- Напоследок про UTF
- Это всё?
- Заключение
Как установить pluma в Ubuntu / Debian
Установка:
Для установки pluma в Ubuntu / Linux Mint / Debian, введите в Терминал :
Подробная информация о пакете:
Официальный текстовый редактор среды рабочего стола MATE
Зависимости:
Библиотека плагина приложения (файлы интроспекции)
Данные интроспекции GObject для Pluma
Язык ISO, территория, валюта, коды сценариев и их переводы
Инструментарий доступности ATK
Библиотека GNU C: общие библиотеки
Каирская двухмерная векторная графическая библиотека
Библиотека Wrapper для различных механизмов проверки орфографии (runtime libs)
Библиотека GDK Pixbuf
Библиотека для обработки данных интроспекции GObject (библиотека времени выполнения)
Библиотека GLib подпрограмм C
Библиотека графического интерфейса пользователя GTK+
Общие библиотеки для виджета подсветки синтаксиса GTK+
Библиотека межконтентной библиотеки X11
Макет и предоставление интернационализированного текста
Библиотека плагина приложения
Библиотека плагина приложения (поддержка Python 2)
Библиотека управления сеансом X11
X11 клиентская библиотека
Библиотека XML GNOME
Библиотека с общим API для различных модулей MATE (общие файлы)
Официальный текстовый редактор среды рабочего стола MATE (общие файлы)
Источник
Pluma linux ��� ���
Pluma — The MATE text editor
Pluma (pluma) is a small and lightweight UTF-8 text editor for the MATE environment. It started as a fork of Gedit (at version 2.30) in 2011, back then the text editor for the GNOME 2 environment.
Pluma is part of MATE and uses the latest GTK+ and MATE libraries. Complete MATE integration is featured, with support for Drag and Drop from Caja (the MATE file manager), the use of the MATE help system, the MATE Virtual File System and the MATE print framework.
Pluma uses a Multiple Document Interface, which lets you edit more than one document at the same time.
Pluma 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 Pluma has:
- Complete support for UTF-8 text
- Syntax highlighting
- Support for editing remote files
- Search and Replace
- Printing and Print Previewing Support
- File Revert
- A complete preferences interface
- Configurable Plugin system
Some of the plugins, packaged and installed with Pluma include, among others:
- Spell checker — Checks the spelling of the current document
- File Browser — Easy file access from the side pane
- Sort — Sorts a document or selected text
- Insert Date/Time — Inserts current date and time at the cursor position
- Tag list — Provides a method to easily insert code tags.
Other external plugins are also available.
Pluma is released under the GNU General Public License (GPL) version 2, see the file ‘COPYING’ for more information.
The official web site is:
You can download the latest Pluma tarball from:
Pluma requires GTK+ (>= 3.22) and GtkSourceView (>= 4.0.2). For a complete list of dependencies see the build.yml.
Warning: This procedure doesn’t install in a separate prefix, so it may overwrite your system binaries.
Simple install procedure:
For installation to a separate prefix change the above ./configure command to
To get more information type the command below:
Pluma has several test that can be run after compilation. Run them by issueing «make check». However there are a couple of requirements that need to be satisfied before they will pass.
- You need the gsettings schemas installed for some tests to be able to run.
- You need to mount sftp://localhost/ with gvfs-mount for one test to pass.
If test fail and you have setup the above correctly then please file a bug report as described below.
How to report bugs
Bugs should be reported to the MATE bug tracking system:
You will need to create an account for yourself.
In the bug report please include:
Information about your system. For instance:
- What operating system and version
- What version of X
- What version of the gtk+, glib and mate libraries
- For Linux, what version of the C library
And anything else you think is relevant. For example:
How to reproduce the bug.
If the bug was a crash, the exact text that was printed out when the crash occurred.
Further information such as stack traces may be useful, but is not necessary. If you do send a stack trace, and the error is an X error, it will be more useful if the stack trace is produced running the test program with the —sync command line option.
Источник
pluma (текстовый редактор) — pluma (text editor)
github .com / mate-desktop / pluma
Pluma ( Latin : Pluma « перо ») является вилка из Gedit 2 и по умолчанию текстовый редактор из MATE настольной среды , используемой в дистрибутивах Linux . Он расширяет базовую функциональность за счет других функций и плагинов .
Pluma — это графическое приложение, которое поддерживает редактирование нескольких текстовых файлов в одном окне (вкладки или MDI ). Он полностью поддерживает международный текст благодаря использованию кодировки Unicode UTF-8. Как текстовый редактор общего назначения, pluma поддерживает большинство стандартных функций редактора и подчеркивает простоту и удобство использования. Его основной набор функций включает подсветку синтаксиса исходного кода, автоматический отступ и поддержку печати с предварительным просмотром печати.
Он разработан, чтобы иметь чистый, простой графический пользовательский интерфейс в соответствии с философией проекта MATE, и это текстовый редактор по умолчанию для MATE. pluma — бесплатное программное обеспечение с открытым исходным кодом, соответствующее требованиям Стандартной общественной лицензии GNU версии 2 или более поздней.
СОДЕРЖАНИЕ
Функции
Pluma предлагает полную интеграцию с MATE, включая перетаскивание в Caja (файловый менеджер MATE) и обратно , использование справочной системы MATE, виртуальной файловой системы MATE и среды печати MATE.
Pluma имеет многодокументный интерфейс (MDI) или вкладки графического интерфейса для редактирования нескольких файлов. Вкладки могут перемещаться между различными окнами пользователем. Он может редактировать удаленные файлы с помощью GVfs . Он поддерживает полную систему отмены и повтора, а также поиск и замену. Другие типичные функции, ориентированные на код, включают нумерацию строк, сопоставление скобок, перенос текста, выделение текущей строки, автоматический отступ и автоматическое резервное копирование файлов.
Функции pluma включают многоязычную проверку орфографии через Enchant и гибкую систему плагинов , позволяющую добавлять новые функции, например фрагменты и интеграцию с внешними приложениями, включая терминал Python или Bash. Ряд плагинов включен в сам pluma, а больше плагинов в пакет pluma-plugins и онлайн.
Pluma поддерживает печать , включая предварительный просмотр и печать в файлы PostScript и PDF . Параметры печати включают шрифт текста и размер страницы, ориентацию, поля, дополнительную печать заголовков страниц и номеров строк, а также подсветку синтаксиса.
Pluma имеет дополнительную боковую панель, отображающую список открытых файлов и (на другой вкладке боковой панели) браузер файлов. У него также есть дополнительная нижняя панель с консолью Python и (с использованием плагинов pluma) терминалом. pluma автоматически определяет, когда открытый файл изменяется на диске другим приложением, и предлагает перезагрузить этот файл. Используя плагин (в пакете pluma-plugins), pluma может сохранять и загружать сеансы, которые представляют собой списки открытых в данный момент вкладок.
Pluma также включает подсветку синтаксиса через GtkSourceView для различных форматов программного кода и текстовой разметки.
Список возможностей
- Подсветка синтаксиса
- Поддержка печати и предварительного просмотра
- Восстановить файл
- Полная поддержка текста UTF-8
- Поддержка редактирования удаленных файлов
- Искать и заменить
- Настраиваемая система плагинов с дополнительной поддержкой Python
- Полный интерфейс настроек
- Новая мини-карта, которая дает вам мгновенный обзор содержимого.
- Новый сетчатый фоновый узор превращает Pluma в блокнот.
- Плагин сортировки поддерживает действия отмены.
- Сочетание клавиш для отображения / скрытия номеров строк, а именно Ctrl + Y.
Список плагинов
Некоторые плагины, упакованные и устанавливаемые вместе с pluma (также доступны внешние плагины):
- Файловый браузер
- Список тегов
- Количество слов
- Программа проверки орфографии
- Вставить дату / время
- Сортировать
- Изменить регистр выделенного текста
- Автоматическое расширение сниппета
- Внешние инструменты
- Synctex
Архитектура
Pluma, входящая в состав основных приложений MATE, использует новейшие библиотеки GTK + и MATE . Исходный код pluma поддерживается с помощью системы контроля версий git .
Источник
Символы Unicode: о чём должен знать каждый разработчик
Если вы пишете международное приложение, использующее несколько языков, то вам нужно кое-что знать о кодировке. Она отвечает за то, как текст отображается на экране. Я вкратце расскажу об истории кодировки и о её стандартизации, а затем мы поговорим о её использовании. Затронем немного и теорию информатики.
Введение в кодировку
Компьютеры понимают лишь двоичные числа — нули и единицы, это их язык. Больше ничего. Одно число называется байтом, каждый байт состоит из восьми битов. То есть восемь нулей и единиц составляют один байт. Внутри компьютеров всё сводится к двоичности — языки программирования, движений мыши, нажатия клавиш и все слова на экране. Но если статья, которую вы читаете, раньше была набором нулей и единиц, то как двоичные числа превратились в текст? Давайте разберёмся.
Краткая история кодировки
На заре своего развития интернет был исключительно англоязычным. Его авторам и пользователям не нужно было заботиться о символах других языков, и все нужды полностью покрывала кодировка American Standard Code for Information Interchange (ASCII).
ASCII — это таблица сопоставления бинарных обозначений знакам алфавита. Когда компьютер получает такую запись:
то с помощью ASCII он преобразует её во фразу «Hello world».
Один байт (восемь бит) был достаточно велик, чтобы вместить в себя любую англоязычную букву, как и управляющие символы, часть из которых использовалась телепринтерами, так что в те годы они были полезны (сегодня уже не особо). К управляющим символам относился, например 7 (0111 в двоичном представлении), который заставлял компьютер издавать сигнал; 8 (1000 в двоичном представлении) — выводил последний напечатанный символ; или 12 (1100 в двоичном представлении) — стирал весь написанный на видеотерминале текст.
В те времена компьютеры считали 8 бит за один байт (так было не всегда), так что проблем не возникало. Мы могли хранить все управляющие символы, все числа и англоязычные буквы, и даже ещё оставалось место, поскольку один байт может кодировать 255 символов, а для ASCII нужно только 127. То есть неиспользованными оставалось ещё 128 позиций в кодировке.
Вот как выглядит таблица ASCII. Двоичными числами кодируются все строчные и прописные буквы от A до Z и числа от 0 до 9. Первые 32 позиции отведены для непечатаемых управляющих символов.
Проблемы с ASCII
Позиции со 128 по 255 были пустыми. Общественность задумалась, чем их заполнить. Но у всех были разные идеи. Американский национальный институт стандартов (American National Standards Institute, ANSI) формулирует стандарты для разных отраслей. Там утвердили позиции ASCII с 0 по 127. Их никто не оспаривал. Проблема была с остальными позициями.
Вот чем были заполнены позиции 128-255 в первых компьютерах IBM:
Какие-то загогулины, фоновые иконки, математические операторы и символы с диакретическим знаком вроде é. Но разработчики других компьютерных архитектур не поддержали инициативу. Всем хотелось внедрить свою собственную кодировку во второй половине ASCII.
Все эти различные концовки назвали кодовыми страницами.
Что такое кодовые страницы ASCII?
Здесь собрана коллекция из более чем 465 разных кодовых страниц! Существовали разные страницы даже в рамках какого-то одного языка, например, для греческого и китайского. Как можно было стандартизировать этот бардак? Или хотя бы заставить его работать между разными языками? Или между разными кодовыми страницами для одного языка? В языках, отличающихся от английского? У китайцев больше 100 000 иероглифов. ASCII даже не может всех их вместить, даже если бы решили отдать все пустые позиции под китайские символы.
Эта проблема даже получила название Mojibake (бнопня, кракозябры). Так говорят про искажённый текст, который получается при использовании некорректной кодировки. В переводе с японского mojibake означает «преобразование символов».
Пример бнопни (кракозябров).
Безумие какое-то.
Именно! Не было ни единого шанса надёжно преобразовывать данные. Интернет — это лишь монструозное соединение компьютеров по всему миру. Представьте, что все страны решили использовать собственные стандарты. Например, греческие компьютеры принимают только греческий язык, а английские отправляют только английский. Это как кричать в пустой пещере, тебя никто не услышит.
ASCII уже не удовлетворял жизненным требованиям. Для всемирного интернета нужно было создать что-то другое, либо пришлось бы иметь дело с сотнями кодовых страниц.
��� Если только ������ вы не хотели ��� бы ��� читать подобные параграфы. �֎֏0590��׀ׁׂ׃ׅׄ׆ׇ
Так появился Unicode
Unicode расшифровывают как Universal Coded Character Set (UCS), и у него есть официальное обозначение ISO/IEC 10646. Но обычно все используют название Unicode.
Этот стандарт помог решить проблемы, возникавшие из-за кодировки и кодовых страниц. Он содержит множество кодовых пунктов (кодовых точек), присвоенных символам из языков и культур со всего мира. То есть Unicode — это набор символов. С его помощью можно сопоставить некую абстракцию с буквой, на которую мы хотим ссылаться. И так сделано для каждого символа, даже египетских иероглифов.
Кто-то проделал огромную работу, сопоставляя каждый символ во всех языках с уникальными кодами. Вот как это выглядит:
Префикс U+ говорит о том, что это стандарт Unicode, а число — это результат преобразования двоичных чисел. Стандарт использует шестнадцатеричную нотацию, которая является упрощённым представлением двоичных чисел. Здесь вы можете ввести в поле что угодно и посмотреть, как это будет преобразовано в Unicode. А здесь можно полюбоваться на все 143 859 кодовых пунктов.
Уточню на всякий случай: речь идёт о большом словаре кодовых пунктов, присвоенных всевозможным символам. Это очень большой набор символов, не более того.
Осталось добавить последний ингредиент.
Unicode Transform Protocol (UTF)
UTF — протокол кодирования кодовых пунктов в Unicode. Он прописан в стандарте и позволяет кодировать любой кодовый пункт. Однако существуют разные типы UTF. Они различаются количеством байтов, используемых для кодировки одного пункта. В UTF-8 используется один байт на пункт, в UTF-16 — два байта, в UTF-32 — четыре байта.
Но если у нас есть три разные кодировки, то как узнать, какая из них применяется в конкретном файле? Для этого используют маркер последовательности байтов (Byte Order Mark, BOM), который ещё называют сигнатурой кодировки (Encoding Signature). BOM — это двухбайтный маркер в начале файл, который говорит о том, какая именно кодировка тут применена.
В интернете чаще всего используют UTF-8, она также прописана как предпочтительная в стандарте HTML5, так что уделю ей больше всего внимания.
Этот график построен в 2012-м, UTF-8 становилась доминирующей кодировкой. И всё ещё ею является.
Что такое UTF-8 и как она работает?
UTF-8 кодирует с помощью одного байта каждый кодовый пункт Unicode с 0 по 127 (как в ASCII). То есть если вы писали программу с использованием ASCII, а ваши пользователи применяют UTF-8, они не заметят ничего необычного. Всё будет работать как задумано. Обратите внимание, как это важно. Нам нужно было сохранить обратную совместимость с ASCII в ходе массового внедрения UTF-8. И эта кодировка ничего не ломает.
Как следует из названия, кодовый пункт состоит из 8 битов (один байт). В Unicode есть символы, которые занимают несколько байтов (вплоть до 6). Это называют переменной длиной. В разных языках удельное количество байтов разное. В английском — 1, европейские языки (с латинским алфавитом), иврит и арабский представлены с помощью двух байтов на кодовый пункт. Для китайского, японского, корейского и других азиатских языков используют по три байта.
Если нужно, чтобы символ занимал больше одного байта, то применяется битовая комбинация, обозначающая переход — он говорит о том, что символ продолжается в нескольких следующих байтах.
И теперь мы, как по волшебству, пришли к соглашению, как закодировать шумерскую клинопись (Хабр её не отображает), а также значки emoji!
Подытожив сказанное: сначала читаем BOM, чтобы определить версию кодировки, затем преобразуем файл в кодовые пункты Unicode, а потом выводим на экран символы из набора Unicode.
Напоследок про UTF
Коды являются ключами. Если я отправлю ошибочную кодировку, вы не сможете ничего прочесть. Не забывайте об этом при отправке и получении данных. В наших повседневных инструментах это часто абстрагировано, но нам, программистам, важно понимать, что происходит под капотом.
Как нам задавать кодировку? Поскольку HTML пишется на английском, и почти все кодировки прекрасно работают с английским, мы можем указать кодировку в начале раздела .
Важно сделать это в самом начале , поскольку парсинг HTML может начаться заново, если в данный момент используется неправильная кодировка. Также узнать версию кодировки можно из заголовка Content-Type HTTP-запроса/ответа.
Если HTML-документ не содержит упоминания кодировки, спецификация HTML5 предлагает такое интересное решение, как BOM-сниффинг. С его помощью мы по маркеру порядка байтов (BOM) можем определить используемую кодировку.
Это всё?
Unicode ещё не завершён. Как и в случае с любым стандартом, мы что-то добавляем, убираем, предлагаем новое. Никакие спецификации нельзя назвать «завершёнными». Обычно в год бывает 1-2 релиза, найти их описание можно здесь.
Если вы дочитали до конца, то вы молодцы. Предлагаю сделать домашнюю работу. Посмотрите, как могут ломаться сайты при использовании неправильной кодировки. Я воспользовался этим расширением для Google Chrome, поменял кодировку и попытался открывать разные страницы. Информация была совершенно нечитаемой. Попробуйте сами, как выглядит бнопня. Это поможет понять, насколько важна кодировка.
Заключение
При написании этой статьи я узнал о Майкле Эверсоне. С 1993 года он предложил больше 200 изменений в Unicode, добавил в стандарт тысячи символов. По состоянию на 2003 год он считался самым продуктивным участником. Он один очень сильно повлиял на облик Unicode. Майкл — один из тех, кто сделал интернет таким, каким мы его сегодня знаем. Очень впечатляет.
Надеюсь, мне удалось показать вам, для чего нужны кодировки, какие проблемы они решают, и что происходит при их сбоях.
Источник