Начало | Python-форум | Python и Vim | Буква Ё | Формат RTF

Python-Vim Система Orphus

Автор: Евгений Миньковский, 1 декабря 2003 г.
Исправлено: 3 декабря 2003 г.

Почему?

Много есть хороших и разных текстовых редакторов, но ещё больше плохих и одинаковых. Волей судьбы, последние несколько лет я профессионально занимаюсь вёрсткой в системе LaTeX. И текстовый редактор, который бы мог оперировать с регулярными выражениями и обладал бы человечным языком программирования для меня необходим. Я перепробовал немалое их количество. Если бы я собрался делать обзор, он был бы очень пухлый. Например, вот это делают и без меня.

Может работать под Windows:

Что здесь?

text.py, скачать

Когда текстовый редактор предоставляет интерфейс к вашему любимому языку программирования это конечно хорошо. Другое дело сделать этот интерфейс удобным. Данный модуль предназначен именно для этого. Он предоставляет интерфейс к буферу как к mutable-строке, обеспечивая работу со срезами. Допустимо присваивание срезу (в том числе в нотации python 2.3, с аргументом step). Кроме того, модуль обеспечивает интерфейс к буферу как к файловому объекту. Модуль предоставляет средства для интерактивной замены участков текста. И наконец, он позволяет удобно работать с регулярными выражениями.

Если вы работаете не только с английским языком, то вы знаете, что python'у надо объяснить, что в этом языке является буквой для того, чтобы правильно заработали метасимволы \w\W\b\B в регулярных выражениях, а так же чтобы заработали методы .upper(), .lower(), .title() и т.п. Сделать это можно двумя способами: включить локаль которая есть не для каждой кодировки и, что ещё хуже, на разных системах включается разными способами. А можно закинуть строку в unicode и бед не знать. Но это так говорится «бед не знать». На самом деле, адресация в vim, где текст представлен в форме строки во внутренней кодировке, задаваемой переменной encoding и в unicode_object'е окажется различной если вы пользуетесь мультибайтной кодировкой (например, я пользуюсь utf-8). Чтобы не утонуть в этом бардаке, данный модуль возвращает вместо традиционных match_object'ов новые _AdvansedMO_object'ы. Набор их методов идентичен натуральному, но если поиск происходил в unicode строке, то все адреса пересчитываются так, как-будто поиск шёл в обычной строке, а все строки конвертируются из unicode обратно в vim'овскую кодировку. Некоторый дополнительный атрибут предоставляет доступ к настоящему match_object'у и всем его атрибутам.

yo.py, подробнее здесь

Этот скрипт расставляет в русском тексте букву Ё. Основной рабочий инструмент это описанный выше text.py. Слова в которых буква Ё обязана быть, заменяются автоматически, остальные интерактивно.

Сердце и почки этого скрипта — обширная Ё-база. База была создана благодаря усилиям многих энтузиастов. Упомянем здесь прежде всего зачинателя — Михаила Панова и корректора Ольгу Васильеву.




Начало положено глубокой осенью 2003 года, 28 ноября... © Анабар | Vasily Ivanov | outerspace[at]anabar[dot]ru