ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
БИЗНЕС, УПРАВЛЕНИЕ ПРОЕКТАМИ
АНГЛИЙСКИЙ ЯЗЫК
ЭЛЕКТРОННЫЕ КНИГИ

Изучаем редакторы vi и Vim

 

Изучаем редакторы vi и Vim

Изучаем редакторы vi и Vim, 7-е издание

Авторы:

Арнольд Роббинс, Элберт Ханна и Линда Лэмб

Страниц: 512
Масса:
Обложка: мягкая
Издана: Декабрь 2012
Купить

Аннотация

На протяжении почти 30 лет vi оставался стандартом для UNIX и Linux, а с 1986 года эта книга была главным пособием по vi. Однако сейчас UNIX уже не тот, что был 30 лет назад, и книга тоже не стоит на месте. Седьмое издание «Изучаем редакторы vi и Vim» расширено и включает подробную информацию о Vim - самом популярном клоне vi.

Будучи редактором по умолчанию в большинстве систем Linux и в Mac OS X, Vim также доступен во многих других операционных системах. Эта книга знакомит вас как с основами редактирования текста, так и с продвинутыми средствами, такими как интерактивные макросы и скрипты, расширяющие возможности редактора.

Доступный стиль изложения сделал эту книгу классикой. Она незаменима, поскольку знание vi или Vim - обязательное условие, если вы работаете в Linux или UNIX.

Из книги вы узнаете, как:

  • Быстро перемещаться в vi
  • Выйти за рамки основ vi, например, используя буферы
  • Применять глобальную функцию поиска и замены vi
  • Настроить vi и запускать команды UNIX
  • Использовать расширенные текстовые объекты Vim и мощные регулярные выражения
  • Редактировать в нескольких окнах и писать скрипты в Vim
  • Использовать все возможности графической версии Vim под названием gvim
  • Применять такие усовершенствования Vim, как подсветка синтаксиса и расширенные теги
  • Вы сравните Vim с тремя другими клонами vi: nvi, elvis и vile

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

Седьмое издание «Изучаем редакторы vi и Vim» содержит всё лучшее от шестого. После изложения общих основ vi, применимых везде, более глубоко рассматривается Vim. Время показало, что именно Vim является самым популярным клоном vi, так что в этом издании обзор данного редактора существенно расширен - ему посвящено 7 новых глав. Но чтобы книга оставалась полезной для как можно большего числа читателей, обновлены материалы о nvi, elvis и vile.

Книга разбита на 4 части и состоит из 18 глав и 4 приложений.

Часть I «Базовый и продвинутый vi» поможет быстро начать работу с vi, а также получить углубленные навыки, позволяющие использовать его более эффективно.

В главе 1 «Текстовый редактор vi» описываются некоторые простые команды vi, с которых можно начать знакомство с программой. Попрактикуйтесь в них, пока не освоите достаточно хорошо. Глава 2 «Простое редактирование» познакомит с некоторыми элементарными инструментами редактирования.

Однако функционал vi выходит далеко за рамки обычной обработки текста. Большое разнообразие команд и опций позволит сократить существенную часть рутинной работы. В главе 3 «Быстрое перемещение» и главе 4 «За рамками основ» уделяется внимание более простым способам выполнения задач. При первом чтении вы получите, по крайней мере, представление о возможностях vi и о том, какие команды можно приспособить под ваши нужды. Впоследствии можно вернуться к этим главам для более детального изучения.

Глава 5 «Введение в редактор ex», глава 6 «Глобальная замена» и глава 7 «Продвинутое редактирование» посвящены средствам, позволяющим переложить часть бремени редактирования на плечи компьютера. Вы познакомитесь со строковым редактором ex, лежащим в основе vi, и узнаете, как из vi обращаться к командам ex.

Глава 8 «Представляем клоны vi» знакомит с расширениями, доступными в четырех клонах vi. Здесь описываются многооконное редактирование, графические интерфейсы, расширенные регулярные выражения, функции, облегчающие редактирование, и некоторые другие особенности, тем самым показывая план оставшейся части книги. Кроме того, в этой главе есть ссылка на исходный код первоначального vi, который может быть легко скомпилирован на современных UNIX-системах (включая GNU/Linux).

Часть II «Vim» описывает Vim - наиболее популярный на сегодняшний день клон vi.

В главе 9 «Vim (vi Improved): введение» дается общая информация о Vim, в том числе, где взять бинарные версии для наиболее популярных операционных систем и каковы различные варианты применения Vim.

Глава 10 «Главные улучшения в Vim по сравнению с vi» описывает наиболее существенные улучшения в Vim по сравнению с vi, такие как встроенная справка, управление инициализацией, дополнительные команды перемещения и расширенные регулярные выражения.

Глава 11 «Многооконность в Vim» уделяет внимание многооконному редактированию, которое, возможно, является наиболее значимым дополнением к стандартному vi. В главе рассматриваются все подробности создания и использования нескольких окон.

В главе 12 «Скрипты Vim» рассматривается язык команд Vim, который позволит вам писать скрипты, чтобы приспособить Vim под ваши нужды. Простота использования Vim «из коробки» во многом объясняется огромным количеством скриптов, написанных другими пользователями и включенных в дистрибутив Vim.

В главе 13 «Графический Vim (gvim)» рассматривается Vim в современных графических окружениях, например тех, которые являются стандартными на современных коммерческих UNIX-системах, в GNU/Linux и других UNIX-системах, а также в MS Windows.

Глава 14 «Улучшения Vim для программистов» сосредоточена на использовании Vim в качестве редактора для программистов, оставляя за рамками его возможности обычного редактирования текста. Особенно ценными являются функции сворачивания кода и редактирования планов-схем, умные отступы, подсветка синтаксиса и ускорение цикла «редактирование-компиляция-отладка».

Глава 15 «Другие полезности в Vim» является отчасти собирательной, так как в ней охватывается множество интересных вопросов, не вошедших в предыдущие главы.

Часть III «Другие клоны vi» посвящена трем популярным клонам vi: nvi, elvis и vile.

Глава 16 «nvi: новый vi», глава 17 «elvis» и глава 18 «vile: vi как Emacs» охватывают различные клоны vi: nvi, elvis и vile. В главах обсуждается, как использовать их расширения, и описываются особенности каждого из них.

Часть IV «Приложения» содержит полезные справочные материалы.

В приложении A «Редакторы vi, ex и Vim» перечисляются все команды vi и ex, отсортированные по функциям. Кроме того, приводится список команд ex в алфавитном порядке, а также некоторые команды vi и ex из Vim.

Приложение B «Установка опций» содержит список опций команды set для vi и всех четырех его клонов.

В приложении C «Возможные проблемы» обсуждаются возможные проблемы при работе с vi и его клонами, а также способы их устранения.

В приложении D «vi и Интернет» рассказывается о месте, которое занимает vi в более широкой культуре UNIX и Интернета.


Оглавление

Предисловие

Часть I. Базовый и продвинутый vi

Глава 1. Текстовый редактор vi

Краткая историческая справка

Открытие и закрытие файлов

Выход без сохранения правок

Глава 2. Простое редактирование

Команды vi

Перемещение курсора

Простая правка текста

Другие способы вставки текста

Объединение двух строк с помощью J

Обзор основных команд vi

Глава 3. Быстрое перемещение

Перемещение по экранам

Перемещение по текстовым блокам

Перемещение по результатам поиска

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

Обзор команд перемещения курсора в vi

Глава 4. За рамками основ

Другие сочетания команд

Варианты запуска vi

Использование буферов

Отметка места

Другие продвинутые команды редактирования

Обзор команд vi для работы с буфером и метками

Глава 5. Введение в редактор ex

Команды ex

Редактирование в ex

Сохранение и выход

Копирование одного файла в другой

Редактирование нескольких файлов

Глава 6. Глобальная замена

Подтверждаем замены

Замена, зависящая от контекста

Поиск по шаблону

Примеры использования шаблонов

Финальный взгляд на шаблоны

Глава 7. Продвинутое редактирование

Настройка vi

Вызов команд UNIX

Сохранение команд

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

Редактирование исходного кода программы

Глава 8. Представляем клоны vi

Знакомьтесь: Даррелл, Даррелл и Даррелл

Многооконное редактирование

Графические интерфейсы

Расширенные регулярные выражения

Улучшенные теги

Улучшенные возможности

Помощь программисту

Итог. Сравнение редакторов

Ничто не сравнится с оригиналом

Перспектива

Часть II. Vim

Глава 9. Vim (vi Improved): введение

Обзор

Где взять Vim

Как установить Vim в UNIX и GNU/Linux

Установка Vim в окружении Windows

Установка Vim в окружении Macintosh

Другие операционные системы

Помощь и упрощения для новичков

Итог

Глава 10. Главные улучшения Vim по сравнению с vi

Встроенная справка

Варианты запуска и инициализации

Новые команды перемещения

Расширенные регулярные выражения

Сборка исполняемого файла под конкретные задачи

Глава 11. Многооконность в Vim

Инициализация многооконного сеанса

Открытие окон

Перемещение по окнам (движение курсора между окнами)

Перемещение окон

Изменение размера окна

Буферы и их взаимодействие с окнами

Теги и окна

Редактирование с вкладками

Закрытие и выход из окон

Итог

Глава 12. Скрипты Vim

Какой ваш любимый цвет?

Динамическая конфигурация типов файлов при помощи скриптов

Дополнительные соображения, касающиеся скриптов Vim

Ресурсы

Глава 13. Графический Vim (gvim)

Общее введение в gvim

Настройка полос прокрутки, меню и панелей инструментов

gvim в Microsoft Windows

gvim в X Window System

Опции GUI и обзор команд

Глава 14. Улучшения Vim для программистов

Свертка и контуры (режим контуров)

Автоматические и умные отступы

Ключевые слова и завершение слов по словарю

Стеки тегов

Подсветка синтаксиса

Компиляция и поиск ошибок в Vim

Заключительные соображения о написании программ

Глава 15. Другие полезности в Vim

Редактирование двоичных файлов

Диграфы: не­-ASCII символы

Редактирование файлов из других мест

Переход и смена каталогов

Резервные копии в Vim

Создание HTML из текста

В чем разница?

Отмена отмен

На чем я остановился?

На какой я строке?

Сокращения команд и опций Vim

Несколько мелочей (необязательно для Vim)

Другие ресурсы

Часть III. Другие клоны vi

Глава 16. nvi: новый vi

Автор и история

Важные аргументы командной строки

Онлайн­справка и другая документация

Инициализация

Многооконное редактирование

Графические интерфейсы

Расширенные регулярные выражения

Улучшения в редактировании

Помощь программисту

Интересные функции

Исходный код и поддерживаемые операционные системы

Глава 17. elvis

Автор и история

Важные аргументы командной строки

Онлайн­справка и другая документация

Инициализация

Многооконное редактирование

Графические интерфейсы

Расширенные регулярные выражения

Улучшенные возможности редактирования

Помощь программисту

Интересные особенности

Будущее elvis

Исходный код и другие операционные системы

Глава 18. vile: vi Like Emacs (vi как Emacs)

Авторы и история

Важные аргументы командной строки

Онлайн­справка и другая документация

Инициализация

Многооконное редактирование

Графические интерфейсы

Расширенные регулярные выражения

Улучшенные возможности редактирования

Помощь программисту

Интересные особенности

Исходный код и поддерживаемые операционные системы

Часть IV. Приложения

A. Редакторы vi, ex и Vim

B. Установка опций

C. Возможные проблемы

D. vi и Интернет

Алфавитный указатель

 

 

Об авторах

Арнольд Роббинс (Arnold Robbins) - профессиональный программист и технический автор, который работал на разных  системах UNIX с 1980 года, а на системах GNU/Linux - с 1996 года. Как член группы POSIX 1003.2 он помог выработать стандарт POSIX для awk. В настоящее время Арнольд работает над gawk и документацией к нему, инженер ПО в Intel. Автор или соавтор нескольких бестселлеров от O'Reilly, включая «Unix in a Nutshell» (Арнольд Роббинс «Unix. Справочник». - Пер. с англ. - КУДИЦ-Пресс, 2007), «Effective awk Programming», «sed & awk», «Learning the Korn Shell» и «Classic Shell Scripting».

Элберт Ханна (Elbert Hannah) - профессиональный  инженер и архитектор ПО, недавно завершивший 21-летнюю карьеру в индустрии телекоммуникаций. В качестве первого профессионального задания он написал полноэкранный редактор на ассемблере в 1983 году и с тех пор имеет особый интерес к редакторам. Он любит все привязывать к UNIX и однажды написал потоковый редактор для автоматизации правок JCL для ежемесячной конфигурации мейнфрейма путем передачи JCL на подключенный по RJE компьютер с UNIX.

 

Линда Лэмб (Linda Lamb) - один из первых редакторов O'Reilly Media, Inc., где она трудилась в разных областях: технический автор, редактор многих книг и менеджер по маркетингу.

 

Отзывы

Отличная книга! Мне казалось, что я уже большой эксперт в Vim, но меня хватило только на первые две главы! Тонны информации, с детальной подачей и понятными примерами. Я рекомендую эту книгу каждому, кто хочет изучить Vim, а также всем изучившим, кому нужен печатный справочник/учебник.

Хора (Hora)

 

Я новичок в vim и gvim, и эта книга дала мне четкие прочные основы. Она сочетается с прекрасными записями блога и отличными скринкастами Vim, которые помогли мне в работе с этой программой. Мне понравилось.

Чарльз Флауерс (Charles Flowers), Atlanta, USA

 

На мой взгляд, книга "Изучаем редакторы vi и Vim" очень подробно описывает основы этих сложных программ. Даже будучи жадным пользователем Vim, я выбрал эту книгу в качестве справочника для заполнения пробелов в моем знании, а также чтобы подчистить разные конфигурационные опции с целью улучшить настройку Vim. Для меня эта книга стала исключительно полезной в плане настройки своего окружения. Я узнал о многих опциях, о которых раньше и не догадывался и которые помогли мне улучшить окружение именно таким способом, который я и замышлял. Я определенно рекомендую эту книгу всем, кто хочет начать пользоваться vi или Vim, и тем, кто хочет заточить свои навыки работы в этих редакторах.

Андрей Муравский (Andrei Mouravski)

 

Это новое издание раздвигает границы доступного в области пособий по vi/Vim.

Интересно наблюдать, сколько времени и нажатий клавиш в день может сэкономить программист, если он поймет, как можно эффективно использовать программу типа Vim. Многие знают только 5% всех возможностей этого редактора и изо дня в день делают слишком много лишних нажатий клавиш. Какая трата времени и нагрузка на пальцы!

Седьмое издание "vi и Vim" объясняет, как получить максимум от этого редактора. Кстати, лучше сразу пользоваться Vim, а не vi, поскольку в vi отсутствуют многие важные функции. К счастью, Vim является стандартом для многих систем, например современных Linux., и даже если ввести vi, то автоматически запустится лучший Vim.

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

Мнемоника в этой книге дается везде, где это возможно, и всегда излагается концепция того или иного сочетания клавиш, чтобы его было проще запомнить, а не простое бессмысленное сочетание клавиш.

Было бы здорово, если бы глава, посвященная программированию в Vim на его собственном языке скриптов (и, возможно, на других языках типа Perl), была бы обширней и включала информацию о том, как определять сложные макросы или писать собственные плагины. Конечно, для книги "Learning" это было бы слишком, но я надеюсь, что это будет включено в будущую "Mastering".

Эта книга обязательна к прочтению для любого программиста, использующего редактор линейки "vi". Есть еще два издания про Vim, но они сильно уступают с точки зрения глубины и структуры содержания. Пять баллов седьмому изданию!

Майкл Шилли (Michael Schilli), San Francisco, USA

 

Читая эту книгу, я испытывал как радость, так и печаль. Радость, потому что это прекрасное обращение с vi и его клонами, а печаль - из-за того, что лишь немногие оценят ее по достоинству.

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

Я все еще использую vi ежедневно - как для написания программ и скриптов, так и для создания HTML-файлов. Те же, кто не использует vi, многое теряют. Задачи, которые я проделываю за секунды или даже доли секунды, требуют от них минуты или еще больше. Иногда текстовый процессор или редактор HTML им немного помогает, но ни один из них не содержит той мощи, которую предоставляет vi.

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

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

Энтони Лоренс (Anthony Lawrence) "Unix, Linux and Mac OS X", Middleboro, USA.

 

 

 

 

 

Система Orphus