Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Лабораторная работа № 2. Экранный редактор Vim



1. Цель работы

Целью работы является освоение основных возможностей экранного редактора vim, который является расширением стандартного UNIX-редактора vi.

2. Методические указания

2.1 Общие сведения

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

Все текстовые редакторы POSIX-совместимых ОС делятся на два класса - редакторы командного стиля и меню - ориентированные редакторы. В первых навигация по тексту и его обработка осуществляется путем ввода команд, например, перейти на пять слов вперед, заменить строку номер десять и т.д. Примерами командных редакторов являются редакторы vi и vim.

Действия в меню - ориентированных редакторах, осуществляются путем выбора одного из предлагаемых в меню вариантов действий. Примерами таких редакторов являются Jed и редактор Midnight Commander.

Файлы, создаваемые текстовым редактором, имеют кодировку ASCII, и могут быть прочитаны в любой среде, не требуя специальных конвертеров. Это особенно важно для документов с символами кириллицы. С помощью редакторов можно готовить html-страницы, осуществлять верстку документов, править конфигурационные файлы, создавать программы и т.д.

Редактор vi (или какой-либо из его клонов) - непременный атрибут всех Unix-систем, и потому любой их пользователь должен иметь о нем представление. Это интерактивный экранный редактор, который используется для создания и редактирования текстовых файлов. Все действия vi производит в буфере. Произведенные изменения могут быть записаны на диск или отменены. Редактор vi имеет три режима: командный, вставки/ввода и последняя строка.

Командный режим позволяет управлять курсором и вводить команды редактирования. Режим вставки допускает производить ввод текста, при этом текст не будет восприниматься, как команды редактирования. Режим последней строки позволяет производить запись файла на диск, завершать работу с редактором, а также вводить дополнительные команды редактирования текста.

Вызов редактора vi осуществляется с помощью команды: vi имя_файла

Если файла с указанным именем не существует, то он будет создан, иначе файл с указанным именем будет загружен для редактирования.

Редактирование файла осуществляется с помощью команд редактирования и позиционирования. Нажатие клавиши < ESC> всегда переводит vi в командный режим (это удобно, когда Вы точно не помните в каком режиме находитесь). Если Вы нажмете клавишу < ESC>, находясь в командном режиме, редактор напомнит вам об этом, подав звуковой сигнал.

Для выхода из vi в командном режиме необходимо нажать символ ‘: ’, который переводит редактор в режим последней строки. В этой строке необходимо набрать символы wq для записи изменений в файл на диске и выхода из редактора. Если необходимо закрыть vi без сохранения выполненных изменений, необходимо в последней строке набрать символ q (или q! ). Редактор различает прописные и строчные буквы, поэтому при использовании команд обращайте внимание на их правильное употребление.

2.2.Основные группы команд редактора

2.2.1 Команды управления курсором

Команды управления курсором приведены в табл. 7.

Таблица 7

Курсор влево Курсор вправо Курсор вверх Курсор вниз
backspace Space   ENTER
h l k j
  ® ­ ¯

2.2.2 Команды позиционирования:

0 (ноль) - перейти в начало строки;

$ - перейти в конец строки;

G - перейти в конец файла;

nG или: n - перейти на строку номер n;

2.2.3 Команды перемещения по файлу:

Ctrl + d - переместиться на 1/2 экрана вперед;

Ctrl + u - переместиться на 1/2 экрана назад;

Ctrl + f - переместиться на страницу вперед;

Ctrl + b - переместиться на страницу назад.

2.2.4 Команды перемещения по словам:

W или w - переместиться на слово вперед;

nW или nw - переместиться на n слов вперед;

b или B - переместиться на слово назад;

nb или nB - переместиться на n слов назад.

Примечание:

а) при использовании прописных W и B под разделителями понимаются только пробел, табуляция и возврат каретки.

б) при использовании строчных w и b под разделителями понимаются также любые знаки пунктуации.

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

Добавление / вставка текста:

а - добавить текст после курсора;

А - добавить текст в конец строки;

i - вставить текст перед курсором;

ni - вставить текст n раз (например, напечатав 10i, затем privet, затем ESC, Вы можете вставить слово “privet” 10 раз;

I - вставить текст в начало строки.

Вставка строки:

о - вставить строку под курсором;

О - вставить строку над курсором.

Удаление текста:

x - удалить один символ в буфер;

dw - удалить одно слово в буфер;

d$ - удалить в буфер текст от курсора до конца строки;

d0 (ноль) - удалить в буфер текст от начала строки до позиции курсора;

dd - удалить в буфер одну строку;

10dd - удалить в буфер 10 строк.

Отмена и повтор произведенных изменений:

u - отменить последнее изменение;

. - повторить последнее изменение.

Копирование текста в буфер:

v – перейти в визуальный режим;

стрелки – выделение блока текста в визуальном режиме;

y – копировать выделенныйблок текста в буфер;

c - вырезать выделенныйблок текста в буфер;

Y - скопировать строку в буфер;

nY - скопировать n строк в буфер;

yw - скопировать слово в буфер.

Вставка текста из буфера:

p - вставить текст из буфера после курсора;

P - вставить текст из буфера перед курсором.

Замена текста:

cw - заменить слово;

ncw - заменить n слов;

c$ - заменить текст от курсора до конца строки;

r - заменить слово;

R - заменить текст.

Поиск и замена текста:

/ текст - произвести поиск указанной строки вперед по тексту;

? текст - произвести поиск указанной строки назад по тексту;

: s/текст - произвести поиск указанной строки по всему тексту;

2.2.6 Команды редактирования в режиме последней строки

Копирование и перемещение текста:

: i, jd - удалить строки с i по j, например: 3, 8d

: i, jm k - переместить строки с i по j, начиная со строки k, например: 4, 9m 12

: i, jt k - копировать строки с i по j, начиная со строки k, например: 2, 5 t 13

: i, jw имя_файла - записать строки с i по j в файл с именем имя_файла, например: 5, 9 test.txt

Поиск и замена текста:

: s/текст1/текст2 – найти и заменить первое появление символов текст1 в текущей строке на текст2;

: %s/текст1/текст2/g - найти и заменить каждое появление символов текст1 на текст2 в файле;

: i, js/текст1/текст2/g - найти и заменить каждое появление символов текст1 на текст2 в диапазоне строк [i, j];

Запись в файл и выход из редактора:

: w - записать измененный текст в файл на диске без выхода из vi;

: w newfile - записать измененный текст в новый файл с именем newfile;

: w! имя_файла - записать измененный текст в файл с именем имя_файла;

: wq - записать изменения в файл и выйти из vi;

: q - выйти из редактора vi;

: q! - выйти из редактора без записи;

: e! - вернуться в командный режим, отменив все изменения, произведенные со времени последней записи.

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

2.3 Опции редактора.

Рабочая среда редактора vi настраивается с помощью нескольких десятков опций, для задания которых используется команда set в режиме последней строки, например:

: set all - вывести полный список опций;

: set nu - вывести номера строк;

: set list - вывести невидимые символы;

: set ic - включить регистронезависимый поиск символов.

Примечание. Если вы хотите отказаться от использования опции, то в команде set перед именем опции надо поставить ‘ no’, например: set nonu прекращает вывод номеров строк.

3. Порядок выполнения работы

Задание 1. Создание нового файла

1. Создайте каталог с именем practice;

2. Перейдите во вновь созданный каталог.

3. Вызовите vi и создайте файл с именем ‘memo’ (vi memo).

4. Нажмите клавишу i и введите следующий текст:

@REM AUTOEXEC.BAT DTK 386/40

ECHO OFF

Path c: \dos; c: \stacker; c: \Util; c: \NC; C: \MOUSE

SET PROMPT=$P$G

SET TMP=C: \TEMP

LH C: \UTIL\RKEGA

goto %config%

: student1

C: \DOS\SMARTDRV.EXE C+ 2048 1024

goto nc

: student2

APPEND E: \tc\bgi

: teacher

PATH %path%E: \windows; e: \tc; e: \tc\bin; e: \foxpro;

goto win

: onc

PATH %path%G: \pctcp;

SET TZ=GMT

goto nc

: nc

nc.exe

goto end

win.com

: end

5. Нажмите клавишу ESC для перехода в командный режим после завершения ввода текста.

6. Нажмите ‘: ’ (двоеточие) для перехода в режим последней строки.

7. Нажмите wq (записать и выйти), а затем нажмите клавишу ENTER для сохранения вашего текста и завершения работы.

Задание 2. Редактирование существующего файла

1. Вызовите vi для редактирования файла memo.

2. Установите курсор на начало слова ‘DTK’ в первой строке.

3. Перейдите в режим вставки и наберите ‘1-203’; теперь текст будет выглядеть так: @ REM AUTOEXEC.BAT 1-203 DTK 386/40

Нажмите ESC для возврата в командный режим.

4. Установите курсор на третью строку и сотрите слово C: \MOUSE.

5. Перейдите в режим вставки, наберите следующий текст: С: \GMOUSE и нажмите ESC, чтобы вернуться в командный режим.

6. Установите курсор на последней строке файла. Вставьте строку, содержащую следующий текст: extention 287

7. Замените слово extention на x.

8. Удалите последнюю строку.

9. Введите команду отмены изменений u для отмены последней команды.

10. Установите курсор на строку 5, вставьте перед ним пустую строку и введите следующий текст: @REM this is a comment

Оставьте пустую строку между новым параграфом и следующим за ним. Нажмите ESC для возврата в командный режим.

11. Введите символ ‘: ’ (двоеточие) для перехода в режим последней строки, запишите произведенные изменения на диск и выйдите из редактора.

Задание 3. Заключительное упражнение

1. Вернитесь в ваш домашний каталог.

2. Скопируйте в каталог ~/practice файл testcase.c, предварительно осуществив его поиск во внешней памяти сервера.

3. Перейдите в каталог ~/practice и загрузите vi для редактирования файла testcase.c

4. Включите отображение номеров строк. Сколько строк в данном файле?

5. Вернитесь в начало файла.

6. Найдите слово WORD и замените его на IGNORE.

7. Найдите слово Reset и замените его на set.

8. Найдите слово input и замените его на output.

9. Вставьте строку, заполненную вопросительными знаками ‘? ’ под строкой: state = WORD

10. Скопируйте строки с 16 по 29 в файл printwords.c

11. Перейдите в конец файла и удалите две последние строки.

12. Вернитесь в начало файла и перенесите фрагмент текста, начинающийся словами /*Manifests. ... в конец файла.

13. Запишите произведенные изменения на диск в файл testvi.c и выйдите из редактора.

4. Контрольные вопросы

1. Дайте краткую характеристику режимам работы редактора vi.

2. Как выйти из редактора, не сохраняя произведенные изменения?

3. Назовите и дайте краткую характеристику командам позиционирования.

4. Что для редактора vi является словом?

5. Каким образом из любого места редактируемого файла перейти в начало или в конец файла?

6. Назовите и дайте краткую характеристику основным группам команд редактирования?

7. Необходимо заполнить строку символами ‘ $’ - ваши действия?

8. Как отменить некорректное действие, связанное с процессом редактирования?

9. Назовите и дайте характеристику основным группам команд режима последней строки.

10. Как определить, не перемещая курсора, позицию, в которой заканчивается строка?

11. Выполните анализ опций редактора vi (сколько их, как узнать их назначение и т.д.).

12. Как определить режим работы редактора vi?

13. Постройте граф взаимосвязи режимов работы редактора vi.

14. Назовите основные типы текстовых редакторов POSIX - совместимых ОС. Дайте им краткую характеристику.

15. Почему знание основных возможностей редактора vi необходимо для пользователей POSIX – систем?

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 1775; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.047 с.)
Главная | Случайная страница | Обратная связь