3. Работа с текстом
После основных утилит для
работы с файлами и текстом
первая программа, которая
понадобится любому
пользователю Linux – это
текстовый редактор (для
краткости – просто редактор).
4. Текстовые редакторы
Именно для того, чтобы работать с
текстовым файлом как со
страницей, по которой можно
перемещаться и редактировать
текст в любой точке, и нужны
текстовые редакторы
5. Текстовые процессоры
Текстовые процессоры, например OpenOffice
Writer или Microsoft Word, предназначены для
создания документов, в которых, помимо
собственно текста, содержится и различная
метаинформация (информация об
оформлении): размещение текста на странице,
шрифт и т. п. Поскольку в текстовом формате не
предусмотрено средств для сохранения
информации об оформлении (там есть только
символы и строки), текстовые процессоры
используют собственные форматы для хранения
данных. Текст, в котором нет никакой
метаинформации об оформлении, называют "plain
text" (только текст, "плоский", простой текст)
6. Метаинформация
Различная метаинформация (об
оформлении, способе использования
текста, например, в качестве ссылки и
пр.) может быть записана и в виде
обычных символов (т. е. в текстовом
формате ), но со специальным
соглашением, что эти символы нужно
интерпретировать особым образом: как
инструкции по обработке текста, а не как
текст. Такие инструкции называются
разметкой. Таким образом
устроен, например, формат HTML.
7. Работа с HTML
Для того чтобы обработать разметку HTML и в
соответствии с ней отобразить текст, нужна
специальная программа – браузер, но
редактировать файлы HTML и прочие форматы
разметки можно и при помощи текстового
редактора. Кроме того, программы на любых
языках программирования и сценарии
(программы на shell) тоже представляют собой
текстовые файлы. Многие текстовые редакторы
ориентированы на работу не только с "плоским"
текстом, но и с текстом в различных форматах.
Для этого придумана масса усовершенствований,
уменьшающих количество символов, которые
нужно вводить вручную: специальные команды,
клавиатурные сокращения и автодополнение
ключевых слов и конструкций.
8. Работа с текстом через терминал
Поскольку функциональных клавиш, на
которые можно рассчитывать на любом
терминале, совсем немного, а
команд, которые нужно отдавать
редактору, – очень много, требуется способ
вводить любые команды ограниченными
средствами терминала. Это условие, равно
как и требование удобства при работе с
разнообразными структурированными
текстами, выполнено в двух "главных"
текстовых редакторах Linux – Vi и Emacs, о
которых в основном и будет идти речь в
этой лекции.
9. Редактор VI
В любой системе Linux, даже при самой
минимальной конфигурации, всегда
присутствует текстовый редактор,
поскольку в любой – даже самой
катастрофической – ситуации у
пользователя должна быть возможность
отредактировать конфигурационные
файлы, чтобы привести систему в
рабочее состояние. По сложившейся
традиции текстовым редактором, который
обязательно запустится из любой
командной строки Linux, является Vi
10. VIM
Наибольшей популярностью пользуется Vim,
возможности которого огромны – для их описания
потребовалось почти сто тысяч строк документации.
Когда пользователь Linux набирает в командной строке
Vim, скорее всего, будет запущена "облегченная"
версия Vi, которая настроена таким образом, чтобы
максимально воспроизводить поведение классического
редактора Vim. Естественно, в таком режиме часть
возможностей Vi недоступна. Все свойства, которыми Vi
отличается от Vim, обязательно снабжены в
руководстве по Vi указанием "not in vi". В дальнейшем
изложении под Vi мы будем понимать именно Vim в
режиме совместимости, все возможности, недоступные
в этом режиме, будут оговариваться. Чтобы вызвать
Vim в полнофункциональном режиме, достаточно
набрать команду Vim
11. Особенности Vi
Популярность Vi не случайна: этот
текстовый редактор позволяет не только
производить простые операции
редактирования текстовых файлов – он
хорошо приспособлен и для максимально
быстрого и эффективного решения ряда
смежных с редактированием задач. Среди
самых важных его возможностей –
инструменты для работы с текстами на
различных языках программирования и в
различных форматах разметки
12. Особенности Vi
Кроме того, в Vim есть
специальные средства для
организации цикла отладки
программы: компиляция–правка
исходного текста–компиляция...
Подробнее об этих и прочих
возможностях Vim можно узнать
из руководств по Vim. Объем
данной лекции позволяет описать
только самое начало работы с Vi
13. Запуск VI
Чтобы начать сеанс
редактирования в Vi, достаточно
выполнить команду Vi на любом
терминале. Чтобы открыть для
редактирования уже
существующий файл, путь к этому
файлу нужно указать в качестве
параметра: " vi путь_к_файлу ".
14. Общий вид
Для отображения текста и работы с ним
Vi использует весь экран терминала –
только последняя строка предназначена
для диалога с пользователем: вывода
информационных сообщений и ввода
команд. Пока буфер не заполнен текстом,
в начале каждой строки экрана
отображается символ " ~ ",
обозначающий, что в этом месте буфера
нет ничего, даже пустой строки
15. Режимы
В Vi проблема разделения команд
редактору и вводимого текста решена
при помощи режимов: в командном
режиме нажатие на любую клавишу – это
команда редактору, в режиме вставки
нажатие на клавишу приводит к вставке
соответствующего символа в
редактируемый текст. Поэтому при
работе с Vi пользователю всегда нужно
обращать внимание на то, в каком
режиме находится редактор.
16. Режимы
Режимы Vi. Состояния редактора Vi, в
которых он по-разному обрабатывает
нажатия клавиш. Различают три режима
Vi: командный (нажатие любой клавиши
считается командой и немедленно
исполняется), вставки (нажатие
клавиши-печатного символа приводит к
вставке этого символа в текст) и
командной строки (для ввода длинных
команд, отображаемых на экране; ввод
завершается Enter ).
17. Работа в VI
чтобы ввести текст, нужно перейти
из командного режима в режим
вставки, нажав клавишу " i " (от " i
nsert" – "вставка"). В этот момент в
последней строке появится
сообщение о том, что редактор
находится в режиме вставки: " --
INSERT-- " или " --ВСТАВКА-- " 5, в
зависимости от установленного
языка системных сообщений
18. Работа в VI
Чтобы записать сделанные
изменения в файл, используется
команда " :wEnter " (чтобы ее
отдать, нужно сначала перейти в
командный режим). О том, что " w
" – это сокращение от англ. " w
rite", "записать", можно
узнать, нажав Tab после " :w " – и
Vim дополнит эту команду до "
write ".
19. Работа в VI
Команда выхода из Vi – " :qEnter "
(сокращение от " q uit"). Пользователь,
запустивший редактор в первый раз,
нередко сталкивается с тем, что никак не
может его закрыть: не работает ни один
из привычных способов завершения
программы, даже " ^C " Vi обрабатывает
по-своему*. И " :w ", и " :q " – команды
режима командной строки; в этот
режим Vi переводится из командного
режима с помощью " :", набираемого в
начале команды.
20. Перемещение по тексту
передвинуть курсор на начало текущей
строки можно командой " 0 ", на первый
непробельный символ в строке – " ^ ", в
конец строки – " $ ". 9 Абзацами Vi
считает фрагменты текста, разделенные
пустой строкой, к началу
предыдущего/следующего абзаца можно
попасть командами " { " и " } "
соответственно. Очень распространенная
задача – необходимость попасть в самый
конец файла: для этого служит команда "
G " (" G o"), в самое начало – " gg ".
21. Emacs
Vi и вслед за ним Vim – это многорежимные
редакторы, когда команды вводятся в одном
режиме, а текст – в другом, что позволяет
использовать в качестве командных любые
клавиши. В Emacs нет специального командного
режима, но использован тот факт, что с
клавиатуры можно вводить не только
печатные, но и некоторые управляющие символы.
Для этого используются несколько управляющих
клавиш терминала (прежде всего Ctrl и Alt
), нажатые в сочетании с различными текстовыми
символами. Чтобы ввести такой символ, нужно
нажать управляющую клавишу (например, Ctrl )
и, удерживая ее, нажать клавишу с одним из
печатных символов (например, " x ").
22. Заключение
И в Vim, и в Emacs интегрировано множество
средств для автоматизации процесса
редактирования. Эти редакторы становятся
удобны в том случае, если прежде чем делать
что-то вручную, пользователь обращается к
руководству и находит в нем способ выполнить
свою задачу максимально быстро и с
минимальными затратами ручного труда.
Для обычного редактирования текста вручную
лучше выбрать один из текстовых редакторов с
простым и привычным интерфейсом: в
дистрибутивах Linux можно найти огромное
количество таких текстовых редакторов с
большими или меньшими возможностями: mcedit,
joe, pico