Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СППО - Лабораторные работы.doc
Скачиваний:
22
Добавлен:
10.11.2019
Размер:
752.13 Кб
Скачать

Лабораторная работа №11. Текстовый редактор Vim

Цель работы: освоить принципы работы текстового редактора Vim.

Необходимые сведения

Vim (Vi IMproved) — улучшенная версия классического текcтового редактора Vi для Unix-систем. Этот редактор обязательно присутствует в любых Unix-системах. Среди особенностей можно выделить полную настраиваемость, возможность использовать макрокоманды (последовательность элементарных команд редактора), малый размер, способность работать на самых маломощных машинах и с использованием некачественных линий связи.

Редактор имеет 3 основных режима работы:

  • командный — любое нажатие клавиши воспринимается как команда редактору, которая немедленно исполняется;

  • вставки/замены — добавление и замещение символов в тексте;

  • режим командной строки — ввод команд, отображаемых на экране.

Запуск Vim осуществляется командой

Vim [ключи] [файл].

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

+[номер] — курсор будет помещен на строку с указанным номером. Если номер не задан, то на последнюю строку;

-m — запрет записи файла на диск;

-R — файл открывается в режиме «Только для чтения».

По умолчанию Vim запускается в командном режиме. Для перехода в режим командной строки необходимо нажать : (двоеточие), которое отобразится в нижней строке, затем ввести текстовую команду и нажать <Enter>. Некоторые команды:

:help — показать справку. Справочная система представляет собой набор гипертекстовых документов. Для перемещения по гиперссылке установите текстовый курсор на ссылку и нажмите Ctrl+] (закрывающая квадратная скобка). Перемещаться по посещенным страницам в обратном направлении можно по сочетанию клавиш Ctrl+o. Для выхода из справочной системы и возврата в редактор наберите команду :q;

:q! — выход без сохранения;

:q — выход из Vim; если с момента последнего сохранения были внесены изменения, редактор предупредит об этом и не позволит завершить работу;

:w [файл] — сохранение изменений в указанном файле (по умолчанию в текущем). При удачном сохранении в нижней строке редактора отобразится информация о количестве строк и символов в файле;

:wq — выход из редактора с сохранением.

Вернуться в командный режим можно нажатием на <ESC>. Символом ~ в редакторе обозначаются пустые строки.

Для переключения в режим вставки, необходимо нажать <Insert>, повторное нажатие переводит редактор в режим замены. В нижней строке редактора появится указание режима (--INSERT-- или --REPLACE--) и текущая позиция курсора в виде <строка>,<позиция>.

При работе с текстом в Vim используются понятия абзаца, строки и слова. Абзац — часть теста между двумя пустыми строками. Строка — часть текста, окачивающаяся символом новой строки. Каждая строка может состоять из нескольких экранных строк. Понятие слова с точки зрения Vim может не соответствовать представлениям пользователя, например, строка abcd;efgh считается состояшей из трех слов.

Некоторые клавиши (<Delele>, <Backspase>, <Home>, <End>, стрелки и пр.) могут не действовать привычным образом в режиме замены/вставки. К этому нужно быть готовым и помнить, что все действия по редактированию текста можно выполнить в командном режиме.

Вернуться в командный режим из режима вставки/замены можно нажатием на <ESC>.

Ход работы

  1. Запустите текстовый редактор Vim без параметров. Ознакомьтесь с приведенной информацией начального окна.

  2. Вызовите справочную систему редактора. Ознакомьтесь с разделами справочной системы (они выделены символами || либо цветом, отличным от цвета основного текста). Перейдите последовательно в раздел содержания (Table of ContentsFirst Steps in VimInserting Text). Просмотрите справочную информацию по вставке текста. Вернитесь назад в первоначальное окно справки. Вернитесь в редактор.

  3. Перейдите в режим вставки текста. Наберите следующий текстовый фрагмент:

  1. При установке системы по умолчанию регистрируется как минимум один пользователь — root (суперпользователь). Под этой учетной записью можно выполнить любые, в том числе и деструктивные действия, поэтому во многих дистрибутивах вход с правами root предназначен исключительно для администрирования и возможен только в режиме командной строки. Для обычной работы создается пользователь, имеющий стандартные разрешения.

  1. Перейдите в командный режим. Попытайтесь воспользоваться клавишами-стрелками, <Home>, <End>, <PgUp> и <PgDown>. Если Вы удалили часть символов, вернитесь в режим вставки и восстановите текст до исходного состояния.

  2. Отредактируйте документ таким образом, чтобы каждое предложение представляло собой отдельный абзац.

  3. Вернитесь в командный режим. Сохраните документ с именем text1.

  4. Отредактируйте второе предложение заменив слово root на суперпользователь. Сохраните измененный документ с именем text2. Обратите внимание, что Вы продолжаете редактировать документ text1. Выйдите из редактора.

  5. Запустите Vim с указанием перейти на последнюю строку файла text1.

Необходимые сведения

Кроме клавиши <Insert> для перехода в режим вставки/замены можно следующими клавишами (в командном режиме):

<O> — добавление текста в новой строке перед текущей;

<o> — добавление текста в новой строке после текущей;

<I> — добавление текста в начале текущей строки;

<i> — добавление текста перед курсором;

<a> — добавление текста после курсора;

<A> — добавление текста в конце текущей строки.

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

 и  — на предыдущую и следующую строку соответственно;

<h> и <l> — на одну позицию влево и вправо соответственно;

<j> и <k> — на следующую и предыдущую строку соответственно;

<^> и <$> — в начало и конец строки соответственно;

<w> и <b> — на слово вправо и влево соответственно;

<[[> и <]]> — в начало и конец текста соответственно;

<H> и <L> — в первую и последнюю строку экрана соответственно.

Команды редактирования текста:

<x> — удаление символа в позиции курсора;

d<команда_перемещения> — стирание от текущего положения курсора до нового;

<u> — отмена последнего действия;

dd — удаление текущей строки;

<J> — слияние текущей строки со следующей.

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

2w — передвинуть курсор на два слова влево;

4J — слить четыре последующих строк в одну;

15x — удалить 15 символов после курсора;

2d3w — дважды повторить операцию удаления трех слов, то есть всего будет удалено 6 слов.

Для поиска текста используют команду /слово; / — повторить поиск слова далее по тексту.

Для замены слов в тексте используется команда

:[номер]s/строка1/строка2/[ключи],

где

номер задает диапазон строк, в которых производить замену. Задается в виде n,m (номера первой и последней строки диапазона), либо % (все строки);

строка1 и строка2 — что заменять и чем заменять соответственно;

ключи — модифицируют процесс замены. Ключ g (без дефиса) указывает на глобальную замену всех вхождений строка1 (по умолчанию, заменяется только первое вхождение); ключ с (без дефиса) включает режим запроса подтверждений (варианты ответов: y («да» для текущего), n («нет» для текущего), a («да» для всех последующих вхождений).

Для повторного вызова команды поиска или замены в командном режиме наберите / или :, курсорными клавишами перейдите на нужную команду.

Ход работы

  1. Не используя курсорных клавиш, выполните следующие действия:

  • перейдите на первую строку текста;

  • добавьте в конец первой строки фразу Конец первой строки;

  • используя одну команду удалите три слова перед курсором;

  • перейдите на последнюю строку текста;

  • удалите 12 первых символов строки;

  • перейдите на вторую строку и удалите с помощью одной команды;

  1. С помощью команды <u> восстановите текст до исходного состояния.

  2. Осуществите последовательный поиск всех слов пользователь в тексте.

  3. Произведите глобальную замену слова пользователь на обычный пользователь. Сохраните файл с именем text3.

Необходимые сведения

Команды копирования, вставки и перемещения фрагментов текста являются стандартными в любом редакторе. Скопированный или удаленный текст хранится в специальных областях памяти — буферах данных. Чаще всего используются три типа буферов:

  1. Неименованный буфер (используется по умолчанию). В него помещается последний скопированный или удаленный текстовый фрагмент. В командах обозначается "" (две двойные кавычки).

  2. Буферы стирания, обозначаемые числами "0, "1,…,"9 (двойные кавычки и число). В них автоматически заносятся стираемые элементы. В буфере "0 хранится последний стертый элемент, в буфере "1 - предпоследний и т. д. При очередном удалении содержимое буфера с номером "9 теряется безвозвратно.

  3. Именованные буферы с именами "a-"z, "A-"Z. B них заносятся данные только в том случае, если пользователь явно указал их имя. Если указывается строчная буква, то фрагмент в буфере перезаписывается, если прописная — текст добавляется.

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

Основные команды работы с буферами данных:

y<команда_перемещения> — занести указанный командой перемещения блок текста в неименованный буфер (нажатие курсорных стрелок клавиатуры НЕ ЯВЛЯЕТСЯ движением курсора);

<buffer>y<команда_перемещения> — занести указанный командой перемещения блок текста в именованный буфер <buffer>;

yy — занести текущую строку в неименованный буфер;

<buffer>yy — занести текущую строку в именованный буфер <buffer>;

p — вставить в текущую позицию содержимое неименованного буфера;

<buffer>p — вставить в текущую позицию содержимое именованного буфера <buffer>;

<number>p — вставить в текущую позицию содержимое буфера стирания <number>.

Вместо команды p, которая вставляет фрагмент после курсора можно использовать команду P, которая вставляет перед курсором.

Примеры команд:

y3w — скопировать в неименованный буфер три слова после курсора;

"ay3w — скопировать в буфер a три слова после курсора

"a5yy — занести в неименованный буфер пять строк, начиная с текущей;

"ap — вставить в текущую позицию содержимое буфера a;

"6P — вставить фрагмент из буфера стирания номер шесть перед курсором.

Ход работы

  1. Используя неименованный буфер поменяйте местами первую и третью строку.

  2. Используя команду отмены восстановите исходное состояние текста. Удалите последовательно все строки. Используя буферы стирания, вставьте строки в обратном порядке.

  3. Используя именованный буфер A соберите в нем по четыре первых слова из каждой строки. В конце текста добавьте две пустые строки, после чего вставьте содержимое буфера A.

  4. Сохраните файл с именем text4.