Чтение онлайн

на главную

Жанры

Командная строка Linux
Шрифт:

y$

От текущей позиции курсора до конца текущей строки

y0

От текущей позиции курсора до начала строки

y^

От текущей позиции курсора до первого непробельного символа в строке

yG

От текущей строки до конца файла

y20G

От текущей строки до 20-й строки файла

Давайте попробуем что-нибудь скопировать и вставить. Поместите курсор на первую строку и введите yy, чтобы скопировать текущую строку. Далее, переместите курсор в последнюю строку (G) и введите p, чтобы вставить скопированную строку ниже текущей:

Съешь

же ещё этих мягких французских булок, да выпей чаю. Это классно.

Строка 2

Строка 3

Строка 4

Строка 5

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

Введите команду u, чтобы отменить изменение. Оставив курсор в последней строке, введите P, чтобы вставить текст выше текущей строки:

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

Строка 2

Строка 3

Строка 4

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

Строка 5

Попробуйте другие команды y из табл. 12.4 и посмотрите, как действуют команды p и P. Закончив эксперименты, верните файл в исходное состояние.

Объединение строк

vi очень строго относится к понятию строки. Обычно он не дает возможности переместить курсор в конец строки и удалить символ конца строки, чтобы объединить текущую строку со следующей за ней. По этой причине в vi была добавлена специальная команда J (не путайте с командой j, которая перемещает курсор на одну строку вниз) для объединения строк.

Если поместить курсор в третью строку и ввести команду J, получится следующее:

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

Строка 2

Строка 3 Строка 4

Строка 5

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

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

Поиск в пределах строки

Команда f выполняет поиск в строке и перемещает курсор к следующему вхождению указанного символа. Например, команда fa переместит курсор к следующему вхождению символа a в текущей строке. После выполнения операции поиска символа в строке ее можно повторить, введя точку с запятой.

Поиск во всем файле

Для перемещения курсора к следующему вхождению слова или фразы используется команда /. Она действует точно так же, как в программе less, о которой рассказывалось в главе 3. После ввода команды / в нижней части экрана появится прямой слеш, вслед за которым нужно ввести искомое слово или фразу и нажать ENTER. После этого курсор переместится к следующему вхождению искомой строки. Поиск следующего вхождения той же строки можно повторить командой n. Например:

Съешь же

ещё этих мягких французских булок, да выпей чаю. Это классно.

Строка 2

Строка 3

Строка 4

Строка 5

Поместите курсор в первую строку и введите

/Строка

затем нажмите ENTER. Курсор переместится в строку 2. Затем введите команду n, и курсор переместится в строку 3. С каждой следующей командой n курсор будет перемещаться вниз по файлу, пока не достигнет последнего вхождения искомого фрагмента. В примерах выше мы использовали для поиска только слова и фразы, однако vi позволяет применять регулярные выражения — очень мощное средство выражения сложных шаблонов текста. Мы подробно обсудим регулярные выражения в главе 19.

Глобальный поиск и замена

Для выполнения поиска с заменой (в vi эта операция называется подстановкой) в диапазоне строк или во всем файле vi использует ex-команды. Например, заменить слово Строка словом строка во всем файле можно следующей командой:

:%s/Строка/строка/g

Давайте разобьем эту команду на элементы и рассмотрим их по отдельности (табл. 12.5).

Таблица 12.5. Пример синтаксиса команды глобального поиска с заменой

Элемент

Значение

:

Символ двоеточия начинает ex-команду

%

Определяет диапазон строк, где будет выполняться поиск. % — сокращение, означающее «от первой строки до последней». В этом примере можно было бы указать диапазон номеров строк 1,5 (потому что в нашем файле всего пять строк) или 1,$, что означает «от строки с номером 1 до последней». Если диапазон строк не указан, операция применяется только к текущей строке

s

Определяет операцию — в данном случае подстановку (substitution) или поиск с заменой

/Line/line/

Шаблон поиска и текст замены

g

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

После выполнения поиска с заменой наш файл будет выглядеть так:

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

строка 2

строка 3

строка 4

строка 5

В команде подстановки можно указать, что она должна запрашивать подтверждение у пользователя перед заменой. Для этого добавьте символ c в конец команды. Например:

:%s/строка/Строка/gc

Эта команда вернет содержимое файла в прежнее состояние, но перед каждой заменой vi будет останавливаться и спрашивать подтверждение, выдавая следующее сообщение:

заменить на Строка? (y/n/a/q/l/^E/^Y)

В круглых скобках перечислены возможные варианты ответов, описание которых приводится в табл. 12.6.

Поделиться:
Популярные книги

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Хозяйка дома на холме

Скор Элен
1. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка дома на холме

Системный Нуб 4

Тактарин Ринат
4. Ловец душ
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Системный Нуб 4

Приручитель женщин-монстров. Том 7

Дорничев Дмитрий
7. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 7

Назад в СССР: 1986 Книга 5

Гаусс Максим
5. Спасти ЧАЭС
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Назад в СССР: 1986 Книга 5

Жандарм 2

Семин Никита
2. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 2

Гром над Академией. Часть 1

Машуков Тимур
2. Гром над миром
Фантастика:
фэнтези
боевая фантастика
5.25
рейтинг книги
Гром над Академией. Часть 1

Энфис 5

Кронос Александр
5. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 5

Не грози Дубровскому! Том V

Панарин Антон
5. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том V

Двойня для босса. Стерильные чувства

Лесневская Вероника
Любовные романы:
современные любовные романы
6.90
рейтинг книги
Двойня для босса. Стерильные чувства

Мастер 3

Чащин Валерий
3. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 3

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле