Глава 6. Редактирование текстовых файлов в JOE и Vim
6.1. Введение
Освоение текстового редактора — важный навык для каждого, кто хочет быть грамотным, достойным пользователем Linux. Проблема выбора редактора сама по себе интересна, так как в мире Linux существует много текстовых ASCII-редакторов. Это объясняется двумя причинами. Во-первых, создание текстового редактора является хорошим (и достаточно типовым) проектом для программиста-новичка; во-вторых, текстовый редактор — сугубо личный инструмент. Гуру Linux часто пишут или изменяют текстовые редакторы, руководствуясь своими капризами, то есть специфическими требованиями.
Пользователи Linux частенько ввязываются в перепалки по поводу текстовых редакторов (особенно «Emacs против Vim»). Занятие весёлое, но бессмысленное. Найдите тот редактор, который лучше всего подходит для ваших потребностей и темперамента. Красота Linux (и концепции свободно распространяемого программного обеспечения вообще) заключается в богатстве выбора пользователя.
В этой главе мы рассмотрим JOE (Joe's Own Editor) и Vim, который является потомком vi. Почему не Emacs? Emacs — замечательная программа; большая, сложная, с бесконечными возможностями настройки и расширения. Это не просто текстовый редактор, а скорее интегрированная среда. В Emacs пользователи могут читать почту и конференции Usenet, писать программы, играть в игры, создавать собственные макросы и комбинации клавиш, имитировать оконные среды при отсутствии X Window и даже консультироваться с психиатром (М-x doctor). Emacs может сделать что угодно... если вы знаете, как этого добиться. Но для тех, кому нужно просто отредактировать текстовый файл, этого многовато. Emacs «весит» более 22 Мбайт, тогда как JOE и Vim помещаются на одной дискете, да ещё остаётся свободное место.
JOE и Vim хорошо подходят для повседневной работы по редактированию конфигурационных файлов. Конечно, они также могут использоваться для написания любых текстов — статей, веб-страниц, программ и т. д. Чем лучше вы печатаете, тем производительнее будет ваша работа. В идеальном случае руки не должны отрываться от клавиатуры, а глаза — от экрана.
JOE является «однорежимным» редактором; иначе говоря, ввод команд и редактирование текста осуществляются на одном экране. Vim работает в двух режимах: нормальном/командном режиме и режиме вставки/редактирования. В нормальном режиме все вводимые данные интерпретируются как команды. В режиме вставки всё интерпретируется как обычный текст. Это приводит в недоумение некоторых новичков, которые впервые берутся за Vim — ведь в программе нет анимированного «помощника», который бы объяснил, что они должны переключаться между двумя режимами, и показал, как это делается. Vim — серьёзный, мощный инструмент, но, как вы узнаете из этой главы, освоить его не так уж трудно.
Совет:
Существует прекрасная бесплатная программа обучения навыкам печати для Linux, которая называется Gtypist (http://www.gnu.org/software/gtypist/gtypist.html). Она обучает как раскладке Qwerty, так и раскладке Дворака и содержит учебные курсы на английском, чешском, русском, испанском, немецком, французском и норвежском языках. Как и большинство программ на базе ncurses, она лучше смотрится на текстовой консоли, чем в X.
vi/Vim, универсальный редактор
Vi (официально произносится «ви-ай», хотя я люблю говорить «ви» в рифму с «фи», чтобы позлить фанатов) — общедоступный текстовый редактор. В какой бы разновидности системы Linux вы ни работали, в вашем распоряжении всегда будет vi или один из его потомков.
У vi существует множество клонов: Vim, elvis, vile, calvin, Vigor, viper, virus и т. д. Проекты такого рода появляются и исчезают, но Vim, elvis и vile широко используются и активно развиваются.
Vim — самый популярный из всех потомков vi. При запуске vi во многих дистрибутивах Linux (таких, как Red Hat, Debian и Mandrake) запускается Vim. Программа поддерживает окна и цветовое выделение синтаксиса, содержит обширную электронную справку и документацию. Впрочем, даже если в вашем распоряжении окажется только древняя версия vi, навыки работы в Vim вам пригодятся.
Редактор JOE: «пять в одном»
Редактор JOE обладает целым рядом приятных особенностей. В частности, он работает в нескольких режимах и имеет собственную справочную систему. Вы можете запустить JOE и сходу взяться за работу, не заботясь о чтении документации. Конечно, это не лучший способ, но в крайнем случае он сработает.
JOE поддерживает три режима эмуляции:
- jstar (WordStar);
- jpico (Pico);
- jmacs (Emacs)
и два собственных режима, JOE и RJOE. В ограниченном режиме RJOE («Restricted JOE») могут открываться только файлы, указанные в командной строке.
После запуска редактора в режиме RJOE вы не сможете открыть новые файлы в редакторе или открыть новый сеанс командной оболочки. Таким образом, режим RJOE хорошо подходит для sudo-пользователей, поскольку он предотвращает выход в режим командной строки с привилегиями root. Все пять режимов работают из одного 200-килобайтного исполняемого файла.
См. также
joe(l), vi(l); Gtypist (http://www.gnu.org/software/gtypist/gtypist.html).