Лекция: Текстовый редактор vi ОС UBUNTU.
Эта работа посвящена изучению основных возможностей встроенного текстового редактора vi – наиболее распространенного средства для построения текстовых файлов, исходных текстов программ и shell-процедур.
Изучаются команды:
— вход в редактор и выход, сохранение файлов;
— ввода текста;
— удаления фрагментов текста;
— копирования фрагментов текста в буферную
область памяти;
— вставки содержимого буфера в текст файла;
— редактирования (изменения) текста;
— поиска строк файлов по их фрагментам;
многострочных операций с файлом (префиксные
команды)
vi — текстовый редактор командной строки в Ubuntu и других ОС UBUNTU. При запуске vi не открывается новое графическое окно, просмотр и редактирование файла производится в текущем окне терминала. За счет того, что vi может работать и без Графического пользовательского интерфейса (GUI), он может использоваться для редактирования файлов.
Запуск редактора:
а) vi     myfile (одно или несколько имен файлов через пробелы для последовательного вызова их на редактирование).
Если такого файла нет, то появится начало пустого файла; курсор установится в начале первой строки.
б) vi + myfile
На экране конец файла; а курсор — в начале последней строки.
Пример:
в) vi +10 myfile
На экране — часть файла и строка 10 — в центре экрана;
курсор — в начале этой строки.
Режимы работы.
Редактор работает в нескольких режимах:
· В режиме вставки (редактирования). Нажатие на клавишу приводит к вставке соответствующего символа в редактируемый текст.
· В командном режиме
o нажатие на любую клавишу воспринимается как команда редактору, которая немедленно исполняется;
o в этом режиме можно ввести команду с параметрами в командной строке.
Поэтому при работе с Vi пользователю всегда нужно обращать внимание на то, в каком режиме находится редактор.
Командный режим.
Редактор Vi всегда начинает работу в командном режиме. В этом режиме есть два способа отдавать команды редактору.
1. нажатие практически на любую клавишу редактор воспринимает как определенную команду. Команды не отображаются, а сразу выполняются. Например, нажатие стрелок не перемещает курсор, а выводит на экран символы, соответствующие командам, расположенным по этим клавишам. Переключиться из режима вставки в командный режим — при помощи Esc.
2. для ввода более сложных многословных команд используется командная строка, вызов которой осуществляется нажатием клавиши ":" .
Режим вставки (редактирования).
Для перехода к этому режиму следует использовать команду insert, выполнение которой осуществляется при нажатии на клавишу «i» в командном режиме. При переключении в этот режим внизу экрана появляется надпись Insert, можно вносить изменения в текст документа.
Выход из vi
а) с сохранением изменений: переключиться в командный режим (Esc), ввести команду
: w q
б) без сохранения изменений: переключиться в командный режим (Esc), ввести команду
: q !
Перемещение курсора
0 — в начало строки
$ — в конец строки
w — в начало слова
b — в начало предыдущего слова
Удаление
dw — удаление слова
d$ — удаление до конца строки
d0 — удаление до начала строки
d7w — удаление 7 слов
Изменение (замена)
c$ (или C)     <текст замены (может быть из нескольких строк)> Esc — замена конца строки (от курсора);
c^ <текст замены> Esc — замена от начала строки до курсора
cc < текст > Esc — замена одной строки;
5cc < текст > Esc — замена пяти строк.
Создание новой строки
о — пустая строка после текущей строки;
O — пустая строка перед текущей строкой.
Использование буфера обмена
Занести в буфер:
yw — сохранить слово (курсор — в начале слова);
yy — сохранить одну строку ;
5yy — сохранить 5 строк; и т.п.
При выполнении команд ndd (где n — число) удаляемые n строк заносятся в буфер.
Вставка текста из буфера:
— p — после текущей строки;
— P — перед ней.
Пример работы с текстовым редактором
Vi + myfile.txt
Попробуйте объяснить смысл каждый строки из данного примера. Какие операции запрашивал пользователь? Какие запросы он вводил с клавиатуры, чтобы получить тот или иной результат?