20 окт. 2000 г.

Азы linux (для детей) урок 31

Глава 6. Текстовые редакторы

Какой редактор лучше использовать?

Мы делаем упор на текстовые редакторы, которые помимо прочего могут быть использованы в системах без графической среды и в терминальных окнах. Дополнительное преимущество освоения текстового редактора заключается в использовании его на удаленной машине. Поскольку вам не нужно передавать всю графическую среду по сети, работа с текстовыми редакторами чрезвычайно повышает скорость работы сети.
Как обычно, существует несколько способов решения проблемы. Давайте посмотрим, какие редакторы обычно доступны:

GNU Emacs

Emacs является расширяемым, настраиваемым, самодокументируемым, отображающим в реальном времени редактором, известным во многих UNIX и других системах. Редактируемый текст отображается на экране и обновляется автоматически при вводе команд. Это и есть редактор реального времени, т.к. экран обновляется очень часто, обычно после каждого символа или пары введенных вами символов. Это минимизирует то количество информации, которую вы должны держать в голове при редактировании. Emacs называется продвинутым, т.к. он предоставляет возможности, выходящие за рамки простой вставки и удаления: контроль субпроцессов; автоматический отступ в программном коде; просмотр двух или более файлов за один раз; редактирование форматированного текста; и "разбирается" в значениях символов, слов, строк, предложений, абзацев и страниц, также как в выражениях и комментариях ряда языков программирования.
Самодокументируемый означает, что в любой момент вы можете ввести специальную комбинацию Ctrl + H, чтобы узнать, какие у вас есть опции. Вы можете также использовать это для выяснения, что делает какая-нибудь команда, или найти все команды, которые относятся к какой-нибудь теме. Настраиваемый означает, что вы достаточно легко можете изменить определения команд Emacs. Например, если вы используете язык программирования, в котором комментарии начинаются с "<**" и заканчиваются "**>", то можете сообщить Emacs команды манипуляции с комментарием при использовании этих строк. Другим видом настройки является перестройка набора команд. Например, если вы предпочитаете четыре основные команды движения курсора (вверх, вниз, влево и вправо) на клавишах клавиатуры, то существует способ переопределить клавиши.
Расширяемый означает, что вы можете выйти за рамки простой настройки и писать совершенно новые команды, программы на языке Lisp; интерпретатор Lisp входит в состав Emacs. Emacs является онлайн-расширяемой системой, это означает, что он разделен на множество функций, которые вызывают друг друга, и любая из которых может быть переопределена в середине сеанса редактирования. Почти любая часть Emacs может быть заменена без создания отдельной копии всего Emacs. Большинство команд редактирования Emacs уже написаны на Lisp; за некоторыми исключениями могли бы быть написаны в Lisp, но написанный на C для повышения эффективности. Хотя только программист может написать расширение, кто-нибудь может использовать его позже.
При запуске под X Window System (запускается как xemacs) Emacs предоставляет собственные меню и удобные привязки к кнопкам мыши. Но Emacs может обеспечить многие из преимуществ оконной системы исключительно в текстовом терминале. Например, вы можете просматривать или редактировать несколько файлов одновременно, перемещать текст между файлами и редактировать файлы во время работы команд оболочки.

Vi(m)

Vim означает "Vi IMproved" ("Vi Улучшенный"). Раньше считалось "Vi IMitation" ("Vi Подражание"), но существует так много улучшений, что изменение названия стало необходимостью. Vim является текстовым редактором, который включает в себя почти все команды от UNIX программы vi и множество новых.
Команды в редакторе vi вводятся только с помощью клавиатуры; в этом есть преимущество, т.к. ваши пальцы могут оставаться на клавиатуре, а глаза на экране, вместо того, чтобы перемещать руку несколько раз на мышь. Для тех, кому это нравится, могут быть активированы поддержка мыши и GUI версия с полосами прокрутки и меню.
В этой книге при редактировании файлов мы будем ссылаться на vi или vim, а вы, конечно, можете использовать редактор по вашему выбору. Тем не менее, мы рекомендуем, по крайней мере, изучить основы vi, потому что это стандартный текстовый редактор почти на всех системах UNIX, в то время как emacs может быть дополнительным пакетом. Могут быть небольшие различия между различными компьютерами и терминалами, но главным остается то, что если вы можете работать с vi, то сможете выжить в любой системе UNIX.
Помимо команды vim, пакеты vIm могут также предоставлять gvim, Gnome-версию vim. Начинающие пользователи могут найти, что он проще в использовании, так как в меню предоставляется помощь, на случай, если вы забыли или не знаете, как выполнять определенную задачу редактирования, используя стандартные команд vim.

Использование редактора Vim


Два режима

Редактор vi очень мощный инструмент и содержит очень обширное встроенное руководство, которое можно открыть используя команду :help, когда программа запущена (вместо использования man или info, которые не содержат так много информации). Здесь мы обсудим только самые основы, чтобы вы смогли начать.
Тем, что вводит начинающих пользователей vi в заблуждение, является то, что он может работать в двух режимах: режиме команд и режиме вставки. Редактор всегда запускается в командном режиме. Команды перемещают вас по тексту, осуществляют поиск, замену, маркировку блоков и выполняют другие задачи редактирования, некоторые команды переключают редактор в режим вставки.
Все это означает, что у каждой клавиши есть не одно, а, вероятно, два значения: она может либо представлять команду для редактора в командном режиме, или символ, который вам требуется в тексте в режиме вставки.
Произношение.
Это произносится как "vee-eye".

Основные команды

Перемещение по тексту

Обычно перемещение по тексту возможно с помощью клавиш навигации. Если нет, попробуйте:
  • h для перемещения курсора влево
  • i для его перемещения в право
  • k для движения вверх
  • j для движения вниз
Shift-G быстро переместить в конец документа.

Основные операции

Вот наиболее используемые команды vi:
  • n dd удалит n линий, начиная с текущей позиции курсора.
  • n dw удалит n слов с правой стороны от курсора.
  • x удалит символ, на котором стоит курсор
  • :n переход к линии n файла.
  • :w сохранит (запишет) файл.
  • :q осуществит выход из редактора.
  • :q! принудительный выход, когда требуется выйти из файла, содержащего несохраненные изменения.
  • :wq сохранение и выход.
  • :w newfile сохранение текста в newfile.
  • :wq! переопределяет разрешение «только для чтения» (если у вас есть разрешение на переопределение разрешений, например, когда вы используете учетную запись root).
  • /astring будет искать строку в файле и установит курсор на первое соответствие ниже его позиции.
  • / будет выполнять тот же поиск снова, перемещения курсор к следующему соответствию.
  • :1, $s/word/anotherword/g заменит word на anotherword во всём файле.
  • yy скопирует блок текста.
  • n p вставит его n раз.
  • :recover восстановит файл после внезапного сбоя.

Команды, которые переключаются редактор в режим вставки

  • a добавление: перемещает курсор на одну позицию вправо перед включением режима вставки.
  • i вставка.
  • o вставка пустой строки под текущей позицией курсора и перемещение курсора в эту строку.
Нажатие клавиши Esc переключает обратно в командный режим. Если вы не уверены, в каком режиме находитесь по причине использования очень старой версии, где vi не отображает сообщение "INSERT", нажмите Esc, и вы будете уверены, что вернулись в командный режим. Вполне возможно, если вы уже находитесь в командном режиме, система даст небольшое предупреждение при нажатии Esc с помощью звукового сигнала или визуально (вспышка на экране). Это нормальное поведение.

Простой способ

Вместо чтения текста, что довольно скучно, вы можете использовать vimtutor для изучения ваших первых команд Vim. Это тридцати минутный учебник, который рассказывает о самой основной функциональности Vim в восьми простых упражнениях. Хотя вы и не узнаете все о Vim за полчаса, это руководство предоставит описание достаточного количества команд, после чего вы сможете с легкостью использовать Vim в качестве универсального редактора.
В UNIX и MS Windows, если Vim был правильно установлен, вы можете запустить эту программу из shell или командой строки, введя команду vimtutor. Это создаст копию файла учебника, так что вы можете редактировать его без риска повреждения оригинала. Есть несколько версий перевода руководства. Чтобы узнать, доступен ли ваш язык, используйте двухбуквенный код языка. Для французского это будет vimtutor fr (если он установлен в системе).

/Для офисных целей служат такие пакеты как

Системные и пользовательские файлы конфигурации

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

Но я хочу графический текстовый редактор!

Если вы и правда настаиваете, попробуйте gedit, kedit, kwrite или xedit; эти программы создают только текстовые файлы, в чем мы и будем нуждаться. Если вы собираетесь делать что-нибудь серьезное, то все-таки лучше использовать vim или emacs.
Приемлемой альтернативой является gvim, версия vim для Gnome. Для этого необходимо использовать команду vi, но если вы затрудняетесь, то можете посмотреть их в меню.

Упражнения

В этой главе есть только одно упражнение: запустить учебник Vim, введя vimtutor в терминале, и начать работу.
Как альтернативу вы можете запустить emacs и нажать Ctrl + H, а затем T для вызова отдельного учебника Emacs.
Единственный путь - практика