Команды редактирования Vim часто объединяют оператор с движением или текстовым объектом. Благодаря такой грамматике одни и те же действия применяются к символам, словам, строкам и более крупным областям. Перед практикой нажмите Esc, чтобы вернуться в нормальный режим.
Продвинутый Text-Fu · Урок 7
Редактирование в Vim
Узнайте, как Vim сочетает операторы, движения, регистры, вставку и отмену для редактирования текста.
Сочетание оператора с движением
Общая форма:
[count] operator [count] motion
Распространённые операторы:
d: удалить текст.c: изменить текст, затем перейти в режим вставки.y: скопировать текст в регистр (yank).
Например, dw удаляет область, охваченную движением w, а d$ — текст от курсора до конца строки. Команда 2dw распространяет удаление на два движения по словам.
Что делает d$ в нормальном режиме?
Редактирование символов и строк
Некоторые команды служат удобными сокращениями:
x: удалить символ под курсором.dd: удалить текущую строку построчно.3dd: удалить три строки, начиная с текущей.cc: изменить текущую строку и перейти в режим вставки.r{char}: заменить символ под курсором на{char}.R: перейти в режим замены до нажатияEsc.
Повтор оператора, как в dd, делает действие построчным. Числовой префикс увеличивает количество строк.
Какая команда нормального режима удаляет текущую и две следующие строки?
Изменение текста и переход к вставке
Оператор c удаляет выбранный текст и включает режим вставки, чтобы можно было набрать замену:
ce: изменить текст до конца слова.c$: изменить текст до конца строки.cc: изменить всю текущую строку.ciw: изменить внутреннюю часть слова под курсором.caw: изменить текстовый объект «слово», включая окружающий пробел в принятом Vim смысле.
У cw есть историческое исключение, и часто команда ведёт себя как ce. Текстовые объекты вроде iw позволяют яснее задать нужные границы.
Какая команда нормального режима удаляет внутреннюю часть слова под курсором и включает режим вставки для замены?
Копирование и помещение текста
В Vim копирование называется yank, а вставка — put:
yw: скопировать область движения по слову.yy: скопировать текущую строку.p: поместить посимвольный текст после курсора, а построчный — под текущей строкой.P: поместить текст перед курсором или над текущей строкой.
Удаление и изменение тоже сохраняют текст в регистрах, поэтому последующая p может поместить последнее удаление, а не более раннюю копию. Именованные регистры позволяют сохранять конкретный текст, но для начала следите, что записала последняя операция.
Какая команда после копирования текущей строки через yy помещает её под текущей строкой?
Отмена, повтор и воспроизведение
В нормальном режиме:
u: отменить последнее изменение.Ctrl+R: вернуть отменённое изменение..: при возможности повторить последнее изменение в текущей позиции.J: объединить текущую строку со следующей.
История отмены относится к изменениям буфера, а не просто к движениям курсора. Сохраняйте контрольные точки и проверяйте правки, не рассчитывая на безграничную или вечную историю.
Какая команда нормального режима возвращает только что отменённое изменение?
Потренироваться с операторами, движениями и восстановлением на одноразовом тексте можно в лаборатории:
- Редактирование текстовых файлов в Linux с помощью Vim и Nano — поработайте с созданием, редактированием, сохранением и навигацией в vi/vim и nano, применяя удаление, изменение, копирование и помещение текста.
Урок завершён
Вы завершили Редактирование в Vim
Теперь вы умеете составлять команды редактирования Vim и исправлять ошибки в нормальном режиме.
Сочетать операторы с движениями, текстовыми объектами и числами.
Удалять символы или полные строки в выбранном масштабе.
Изменять текст и включать режим вставки для замены.
Копировать и помещать посимвольный или построчный текст.
Осознанно отменять, возвращать и повторять изменения.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт