vim: заменить весь символ до конца строки


30

Может быть, я ненормальный, но вы можете заменить все символы от курсора до конца строки одной командой? Затем используйте, .чтобы сделать ту же замену на следующей строке и так далее.

Ответы:


49

Если я правильно понял ваш вопрос, попробуйте это:

C(это заглавная буква C) удалит все от курсора до конца строки и переведет вас в режим INSERT , затем вы напишете замену, выйдете из режима INSERT и используйте, .чтобы повторить процесс где-то еще.


Хорошо. :)Пожалуйста.
sr_

16
если кому интересно, то это столица С :)
Дэвид Сильва Смит

1
Было бы неплохо обновить ответ, чтобы указать, что это заглавная
буква

14

Добавление к ответу sr_:

Если ваш курсор начинается в одной и той же позиции в каждой строке, вас может заинтересовать функция визуального блока .

Введите следующее по порядку, поместив курсор в исходное положение:

  • Ctrl+ v: Войти в режим визуального блока.
  • $: перейти к концу строки.
  • [X]j: замените X на количество строк, которые вы хотите уменьшить.

Это должно создать прямоугольное выделение, идущее от вашего курсора на первой строке до конца строки [X] строк ниже.

Затем вы можете заменить весь свой выбор:

  • c: удалить выбор и перейти в режим вставки.
  • вставить новый текст
  • Esc: Выход из режима вставки; Vim будет автоматически повторять шаг для каждой выбранной строки.

Я использую визуальный блок всякий раз, когда я могу, я думал, что поделюсь


+1 действительно хороший ответ. Но не совсем то, что я хочу, так как иногда мой код не так красиво отформатирован ^ _ ~
Сардатрион - Восстановить Монику

@sardathrion; RE комментарий, «красиво отформатированный». Создание таблиц в Markdown Я смог автоматически заполнять пробелы в n+1строках, после создания строки nвизуальным блоком, выбирая задом наперед ! Другими словами, форма была похожа на 7 назад или L с вертикальным переворотом, или «неправильно отформатирована». смешно.
сентября

3

Cили c$для «изменения» и Rдля «замены».

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


1

Просто нажмите «C», то есть заглавную C в командном режиме, и введите текст замены.


0

Другие ответы пропустили их, они не входят в режим вставки.

  • D Удалить до конца строки
  • d$ Удаляет от курсора до конца строки

Тогда конечно используйте .


-1 за то, что не вошел в режим вставки, так как именно это я и просил. +1 для полноты.
Сардатрион - Восстановить Монику

0

Как это может быть полезно, как только мы пытаемся измениться до конца строки. Я создал отображение вставки для выполнения этой задачи, он не использует, Dпотому что в режиме вставки этот ключ используется для уменьшения отступа. Так и есть Ctrl-k

:inoremap <C-k> <C-o>C
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.