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

Редактирование файлов средствами редактора vi. Текстовый редактор vi Во всех версиях ОС UNIX имеется встроенный текстовый редактор vi экранного типа. Он может применяться практически на любом терминале, начиная с телетайпа.

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

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

Далее все изменения в редактируемом файле соответственно осуществляются в буфере в КОМАНДНОМ РЕЖИМЕ - нажатые клавиши интерпретируются как команды редактирования текста.

В командный режим редактор переводится автоматически сразу же после входа в программу vi. По завершении редактирования надо выйти из редактора с сохранением файла Esc wq отредактированная копия замещает исходный файл. Если же требуется отменить все редактирование, то Esc q! В режиме редактирования, например, для ввода новых фрагментов текста файла используются следующие клавиши команды режима ввода текста значения клавиш на экране не отображается a append - набор последующего текста в текущую строку после курсора i insert - вставка текста в текущую строку после курсора o open - вставить пустую строку после текущей Замечание если в качестве управляющей используется клавиша нижнего регистра - операция редактирования реализуется после курсора, если верхнего - перед курсором.

Операции ввода текста необходимо завершить командой Esc - переводит редактор в режим редактирования последнего варианта текста.

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

Команды удаления текстах - удаление текущего символа dw - удаление текущих слов dd -удаление текущих строк dG - удаление всех строк от текущей до последней d - удаление конца строки от текущей позиции d - удаление начала строки до текущей позиции. Замечание удаленные фрагменты текста не пропадают а временно помещаются в буфер, откуда онимогут быть возвращены в текст или перемещены по файлу см. ниже. Команды отмены произведенных изменений в текущей строке u - отмена undo последнего изменения U - отмена всех изменений.

Команды копирования указанного в команде объекта в буфер yw - копирование yank текущего слова yy - копирование текущей строки уG - копирование строк от текущей до конца файла yS - копирование части строки от курсора до конца строки y - копирование части строки от курсора до начала строки Команды вставки буфера в текст P - перед курсором p - после курсора Команды изменения текста r символ - заменяет change текущий символ на указанный с объек - заменяет указанный объект на текст, который вводится с клавиатуры - Esc - cw -изменение текущего слова - cc - всей текущей строки - cG - всех строк файла от текущей до последней - cS -части строки от курсора до конца строки - с - части строки от курсора до начала строки.

Команды поиска строки файла по фрагменту текста текст - начиная от текущей строки до конца файла с переходом на его начало ? текст - начиная от текущей строки до начала файла и по всему n - поиск следующей строки в файле, аналогичной найденной N - поиск предыдущего вхождения в файл заданной строки.

Редактор имеет возможности поиска строк по шаблонам например по диапазону символов и пр. На экране содержимое редактируемого файла представляется как бы через некоторое окно со следующими полями сверху - вниз - область текста файла - область пустых строк, которые надо ввести, если они понадобятся - тильда - область для ввода дополнительного текста файла, но пустых строк этой области в файле нет - область сообщений редактора или область префиксных ex-команд - операций редактора над группой строк файла или над целым файлом команды вводятся на приглашение, отображаются на экране и исполняются по команде управляющей клавиши перевода строки. Команды используются для многострочных операций с редактируемым файлом и настройки сеанса редактирования w файл - запись текущего буфера в файл m, nw файл - запись строк с m-ой по n-ую в файл e отмена всех изменений в буфере с перезагрузкой в него файла с диска e файл - загрузка файла в буфер редактирования, файл замещает старое содержимое самого буфера r файл - добавление содержимого файла после текущего положения курсора set опция - значение опций определяет настройку редактора и пр. Практическая работа 6 1 Изучение интерфейса редактора viЦель работы 1. Изучить основные возможности встроенного текстового редактора vi - наиболее распространенного средства для построения текстовых файлов, исходных текстов программ и shell-процедур.

Порядок выполнения работы1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Войдите в редактор с созданием нового пустого файла с произвольным именем и расширением - .1. 3 Изучите интерфейс редактора vi. Как перейти в командный режим редактора? В текстовый режим редактора? Какие операции с текстом позволяет выполнить редактор? 4 Поместите в созданный файл текст, включающий не менее четырех строк с несколькими словами в каждой. 5 Вставьте по одной пустой строке до и после одной из строк файла. 6 Заполните пустые строки произвольным текстом. 7 Вставьте еще по одной строке в середину текста файла без предварительного резервирования пустых строк. 8 Перейдите в режим редактирования и выполните произвольное редактирование отдельных слов и строк файла с использованием всех команд из групп Команды изменения текста и Команды отмены произведенных изменений в текущей строке . 9 Выйдите из редактора с сохранением файла.

Убедитесь в сохранении созданного файла. Практическая работа 6 2 Создание и редактирование текста с помощью редактора viЦель работы 1. Изучить основные возможности встроенного текстового редактора vi. 2. Научиться редактировать текстовые файлы средствами редактора vi. Порядок выполнения работыИзучаются команды - сохранение файлов - ввода текста - удаления фрагментов текста - копирования фрагментов текста в буферную область памяти - вставки содержимого буфера в текст файла - редактирования изменения текста - поиска строк файлов по их фрагментам - многострочных операций с файлом префиксные команды 1 Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал. 2 Войдите опять в vi для редактирования созданного файла с использованием команд из групп Команды копирования в буфер и Команды вставки буфера в текст . 3 Поменяйте местами несколько слов в строках файла. 4 Поменяйте местами несколько строк. 5 Поменяйте местами последовательно начало строки с её концом и наоборот. 6 Выполните операции поиска строк файла по заданным их фрагментам с различными направлениями поиска см. Команды поиска строки файла по фрагменту её текста . 7 Не выходя из vi, перепишите полученную в результате редактирования версию файла в файл с тем же именем, но с расширением .new. 8 Добавьте первые 3 строки редактируемого файла к файлу .1. 9 Не выходя из vi, загрузите в буфер файл с расширением .1. 10 Последовательно удалите части строк и несколько строк с использованием команд из группы Команды удаления текста . 11 Выйдите из редактора без сохранения файла. 12 Просмотрите и проанализируйте содержимое редактируемых файлов в текущем каталоге. Контрольные вопросы 1. В чем особенности и преимущества встроенного редактора vi ОС UNIX? 2. Какие два основных режима работы использует редактор? Как осуществляется переключение режимов? 3. Какую структуру имеет экран при редактировании файла? Назначение полей экрана? 4. Как в vi организовано редактирование открытого в нем файла? 5. Как организована работа с клавишными командами редактора? 6. Что такое префиксные команды и их назначение? Как организована работа с командами этого вида? 7. Какие функции редактора Вы использовали при выполнении лабораторной работы? Тема 2.5.