4deef2c95626ddd1b8628d5ffc9b5b1e.ppt
- Количество слайдов: 22
Занятие 3 Введение в редактор vi
Что представляет собой редактор vi? • • • – – – William Joy, Калифорнийский университет vi - это экранный текстовый редактор поставляется в большинстве версий системы UNIX управляется командами включает следующие классы команд: общеорганизующие управления курсором вставки текста удаления текста вставки ранее удаленного текста изменения текста
vi: Начало сеанса работы Синтаксис: vi [имя_файла] Примеры Начало сеанса редактирования файла $ vi file 1 vi file 1 Диск Keyboard Все изменения при редактировании выполняются над копией файла, размещенной в оперативной памяти
vi: Режимы работы редактора • Командный режим - нажатия клавиш интерпретируются как команды –исходным является режим, когда начинается сеанс vi редактирования –нажатие клавиши
vi: Сеанс редактирования содержимое файла строки в конце файла Это пример содержимого файла test, который будет рассматриваться далее ~ ~ ~ Пометки строк, ~ которые не существуют ~ в файле ~ : ex команды сообщения о режиме работы курсор
vi: Завершение сеанса редактирования
Команды управления курсором (1) h или
Команды управления курсором (2) G #G : #
Режим ввода Для переключения в режим ввода используются следующие команды: a Добавление (append) текста после курсора i Добавление (insert) текста перед курсором O Открытие (Open) пустой строки над текущей строкой o Открытие (open) пустой строки под текущей строкой A Добавление (Append) текста в конец строки I Вставка (Insert) текста с начала строки В режиме ввода:
Удаление текста: команды x, dw, dd, d. G #x #dw #dd d. G d$ d^ Удаление (X out) символа над курсором Удаление (Delete) текущего слова (Word) Удаление текущей строки Удаление всех строк от текущей до последней строки файла Удаление конца строки (от текущей позиции) Удаление начала строки (до текущей позиции) Можно задать число, показывающее сколько раз должна быть повторена команда. Например: 3 dd - удалить 3 строки
Команды отмены произведенных изменений u U Отмена (undo) последнего изменения Отмена (Undo) всех изменений в текущей строке
Перемещение текста: команды p и P. dобъект p после P перед Удаление объекта и сохранение его в буфере Вставка (paste) содержимого буфера в текст курсора Вставка (Paste) содержимого буфера в текст курсором
Копирование текста: команды yw, yy #yw #yy y. G y$ Копирование (yank) текущего слова в буфер Копирование текущей строки Копирование строк от текущей до конца файла Копирование части строки от курсора до конца строки y^ Копирование части строки от курсора до начала строки Список команд копирования и вставки yобъект Копирование (yank) объекта в буфер p Вставка (paste) содержимого буфера в текст после курсора P Вставка (Paste) содержимого буфера в текст перед курсором
Изменение текста: команды r, R, cw, . rсимвол Заменяет (replace) символ, помеченный курсором на символ R Заменяет (Replace) все символы строки, пока не нажата клавиша
Поиск текста: команды /, n, N /текст Поиск строки, содержащей заданный текст, начиная от текущей строки до конца файла с переходом на начало файла ? текст Поиск строки, содержащей заданный текст, начиная от текущей строки до начала файла с переходом на конец файла n Поиск следующего вхождения в файл заданной строки текста N Поиск предыдущего вхождения в файл заданной строки текста
Поиск текста по шаблону [o. O]ld_text Поиск old_text или Old_text. ^текст Поиск строки начинающейся с текста текст$ Поиск строки заканчивающейся на текст. Поиск по любому одиночному символу. символ* Поиск по символу, который может не встретиться ни разу или любое число раз. . * Поиск по любому символу, который может не встретиться ни разу или любое число раз.
Список регулярных выражений (шаблонов для поиска) [a-z A-Z 0 -9] Определяет класс символов, из которого формируется образец для сопоставления. Знак "тире" (—) означает допустимый диапазон символов. Квадратные скобки [] определяют только один символ. ^текст Текст от начала строки. текст$ Текст от конца строки. . Соответствует любому одному символу. символ* Определяет ноль или любое число повторений символа
Примеры составления шаблонов / [Tt]he Поиск очередной строки со словом "The" или "the" / [o 0] [n. N] [e. E] Поиск строки со словом "one", написанным любым из указанных типом символов вне зависимости от позиции в слове (т. е. o. Ne, One, o. NE и т. п. одно и то же) /bo*t Поиск строки, содержащей символ ”b", за которым может быть ноль или любое количество символов "о", за которым, в свою очередь, следует символ "t". Т. е. подходящими окажутся такие слова: "bt", "bottom", "boot", "booot" и т. д. /^ [abc]. * Поиск очередной строки, начинающейся символом "а", " b" или "с". Т. е. это надо понимать так, что подойдет любая строка, начинающаяся с символа "а", "Ь" или "с", вне зависимости от того есть или нет за любым из них какой-либо символ (символы) /finally. $ Поиск очередной строки, оканчивающейся на слово "finally", за которым следует любой символ. Т. е. подойдет любая из строк, оканчивающаяся следующим образом: «finally. » , «finnally. A» , «finally. Z»
Глобальный поиск и замена - команды ex : m, ns/шаблон/новый_текст/[g] Примеры : 1, $s/one/two/ В каждой строке, с первой по последнюю ($), заменить только первое вхождение слова “one” на слово “two” : . , 10 s/[o. O] [n. N] [e. E]/two/g Во всех строках, начиная с текущей по 10 -ю, заменить каждое вхождение “one”, причем не важно строчными и. или прописными символами оно представлено, на слово “two”
Глобальный поиск и замена - команды ex : m, ns/шаблон/новый_текст /[g]
Команды ex : w запись текущего содержимого буфера на диск
Команды ex : set опция включение опции режима редактирования : set noопция выключение опции режима редактирования : set all вывод всех опций сеанса редактирования


