Опубликован: 24.07.2006 | Доступ: свободный | Студентов: 8870 / 1199 | Оценка: 3.95 / 3.75 | Длительность: 41:47:00
ISBN: 978-5-94157-183-3
Лекция 13:

Программы для работы с текстом

Проверка правописания

Прежде, чем перейти к рассмотрению текстовых редакторов под Linux, необходимо кратко рассмотреть программу проверки правописания ispell. Дело в том, что проверка правописания - это одна из функций, которую должен иметь современный текстовый редактор, и многие из них подключают для выполнения этой функции именно ispell (или aspell ). Существует русифицированный вариант этой программы, которой был разработан Владимиром Рогановым и Константином Книжником.

Установка ispell состоит из двух этапов: вначале надо установить саму программу, а затем установить словарь русского языка. Для установки самой программы ispell я воспользовался пакетом ispell-3.1.20-23.i386.rpm, а для его русификации - пакетом ispell-russian-3.1.20-23.i386.rpm. Оба пакета входили в состав дистрибутива Black Cat Linux 6.02. Для установки первого пакета достаточно дать команду

[root]# rpm -i ispell-3.1.20-23.i386.rpm

а для второго - команду

[root]# rpm -i ispell-russian-3.1.20-23.i386.rpm

После этого в каталоге /usr/lib/ispell появятся файлы русского словаря russian.aff и russian.hash (остальные словари, например, немецкий) можно удалить, если вы не собираетесь производить проверку правописания на этих языках.

Для проверки текста теперь достаточно дать команду следующего вида:

[user]$ ispell -drussian edit.htm

Естественно, имя файла edit.htm здесь взято для примера; вы должны подставить имя того файла, который вы хотите проверить, причем файл должен находиться в текущем каталоге, иначе надо указать полное имя файла с указанием пути.

Проверка правописания с помощью ispell

увеличить изображение
Рис. 12.6. Проверка правописания с помощью ispell

Принцип работы программы ispell очень прост: каждое встречающееся в файле слово должно иметься в словаре программы. Если слово в словаре не найдено, считается, что найдена ошибка, и на экран выводится сообщение, пример которого можно увидеть на рисунке 12.6. В самой верхней строке выведено обнаруженное ошибочное слово и имя проверяемого файла. Ниже выведено несколько строк (число можно задать) из этого файла, содержащих обнаруженную ошибку. Если в словаре обнаружены слова, похожие на ошибочное, то они выводятся ниже (с порядковыми номерами). Далее следует строка подсказки и командная строка программы.

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

Таблица 12.2. Команды замены в программе ispell
Команда Выполняемое действие
<R> Заменить ошибочное слово (программа предложит набрать правильное слово в нижней строке экрана)
<пробел> Пропустить данное вхождение слова
<A> Пропустить все вхождения данного слова в текущей сессии работы с программой
<I> Пропустить это слово и включить его в персональный словарь (который хранится в файле .ispell_russian в домашнем каталоге пользователя
<U> То же самое, только слово записывается в нижнем регистре (маленькими буквами)
<Q> Немедленный выход из программы (вначале запрашивается подтверждение, а проверяемый файл остается не измененным; сделанные замены не проводятся)
<X> Прервать проверку, записать проведенные изменения и выйти из программы
<!> Временный выход в оболочку shell

Если в качестве команды ввести порядковый номер одного из предложенных программой вариантов замены, то программа заменит ошибочное слово на слово, соответствующее набранному порядковому номеру варианта замены. Только номера надо вводить в точности так, как они предлагаются программой, т. е. с предшествующими значащим цифрам нулями (если они есть). И набирать номер надо, не вводя предварительно команду <R>, иначе ошибочное слово будет заменено просто на соответствующую цифру.

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

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

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

Если недостатка дискового пространства нет, то после внесения исправлений программа записывает исправленную версию файла, а исходный файл сохраняет, добавив к его имени расширение .bak.

О трех типах текстовых редакторов

Редактирование текстовых файлов (с текстами на естественном языке, либо с текстами программ) - одна из наиболее часто выполняемых работ на любом компьютере и в любой операционной системе. Может быть, поэтому для Linux разработано уже очень много текстовых редакторов (на www.linuxlinks.com перечислены около 100 наименований, и это еще, вероятно, не все). Так что выбрать есть из чего. И стоит уделить некоторое время оптимальному выбору редактора.

Конечно, чтобы такой выбор был обоснован, в идеале надо опробовать все редакторы или большинство из них. Это, очевидно, невозможно, так что приходится положиться либо на случай, либо на мнение кого-то из знакомых или авторов компьютерных книг. (Кстати, неплохой, на мой взгляд, обзор текстовых редакторов содержится в книге А.Федорчука "Офис, графика, Web в Linux"[П1.6]. Я тоже попробую изложить свои впечатления о некоторых текстовых редакторах для Linux.)

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

По моему мнению, рядовому пользователю, часто использующему компьютер для редактирования файлов, необходимо освоить по крайней мере 3 редактора.

Один из них - это мощный текстовый процессор, работающий в режиме WYSIWYG, обеспечивающий широкие возможности форматирования текста и массу дополнительных возможностей, отсутствующих в более простых редакторах. К этому типу я бы отнес текстовые редакторы (процессоры) из пакетов StarOffice, Applixware, KOffice, отдельные текстовые процессоры Maxwell и WordPerfect 8, AbiWord, а также издательскую систему TEX. Все редакторы этого типа я буду называть текстовыми процессорами. Правда, некоторые авторы, например, тот же А.Федорчук, все же делят их на просто редакторы и процессоры, однако я не вижу оснований для этого. Собственно говоря, весь вопрос в возможностях форматирования текста, которые предоставляет редактор. И какой-либо точный критерий для деления редакторов этого класса на два подкласса предложить трудно, если вообще возможно.

Второй необходимый редактор - это редактор для создания или правки ASCII файлов, работающий в графическом режиме. С помощью этого редактора Web-мастер может, например, редактировать html-странички, в нем можно написать письмо для последующей отправки по e-mail и т. д. Это должен быть редактор графического режима, потому что во многих случаях в графическом режиме работать легче и удобнее, чем в текстовом. Примерами таких редакторов являются KEdit и KWrite из KDE, nedit.

И все же надо уметь пользоваться и одним из консольных текстовых редакторов, потому что Вы, как единственный пользователь (и даже суперпользователь) персонального компьютера, должны уметь отредактировать конфигурационные файлы, причем в любой ситуации, даже тогда, когда графический режим не загружается. Выбор редакторов этого типа очень широк: vi, vim, bvi, Nvi, Elvis, Levee, vile, Wily, joe, aee, Fred, gred, le, lpe, Zed, Emacs, CoolEdit. Давние приверженцы UNIX чаще всего используют vi или его усовершенствованную версию vim, но тем, кто переходит на Linux из среды Windows проще будет освоить CoolEdit, имеющий большое сходство со встроенными редакторами программ Norton Commander и FAR.

Исходя из этих рассуждений нижеследующее изложение разбито на три больших части, каждая из которых посвящена одному из выделенных типов редакторов. Первый вариант раздела с описанием каждого рассматриваемого ниже редактора был создан в том самом редакторе, который в этом разделе описан (эти первые варианты размещались мной на сайте http://linux-ve.chat.ru )1В настоящее время сайт http://linux-ve.chat.ru не поддерживается, а все его содержание перенесено на сайт http://rus-linux.net, где на моей персональной страничке вы найдете и упомянутые заметки.. Я надеюсь, что после чтения этих разделов вы сможете определиться с выбором текстовых редакторов. Конечно, критерии выбора могут у каждого оказаться свои. Но думаю, что для нас, русскоязычных пользователей, немаловажным фактором является возможность вводить и редактировать тексты на русском языке. Желательно также, чтобы пункты меню и сообщения программы тоже были русифицированы (правда, до некоторой степени с английскими терминами здесь можно мириться, особенно если есть хорошее описание программы на русском, потому что число пунктов меню обычно невелико и их смысл можно просто запомнить).

Владислав Гермак
Владислав Гермак

Приглашения оболочки

Одна из очень важных переменных имеет имя PS1. Эта переменная задает вид приглашения, которое bash выводит, когда ожидает ввода очередной команды пользователем. По умолчанию этой переменной присвоено значение "\s-\v\$ ".

"\s-\v\$ ". -значиние /v замените /u