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


30

Можливо, я маю даф, але чи можете ви замінити всі символи звідки курсор до кінця рядка однією командою? Потім використовуйте .для того ж заміну в наступному рядку тощо.

Відповіді:


49

Якщо я правильно зрозумів ваше питання, спробуйте:

C(Це капітал C) видалить все від курсора до кінця рядка і поставити вас в вставити режимі, то ви пишете заміни, режим вставити відпустки, використання .повторити процес де - то ще.


Чудово. :)Ласкаво просимо.
sr_

16
якщо хтось цікавився, це столиця С :)
Девід Сілва Сміт

1
Було б добре оновити відповідь, щоб уточнити, що це велика столиця
фракція

14

Додавання до відповіді sr_:

Якщо ваш курсор починається в одній і тій же позиції в кожному рядку, вас може зацікавити функція Visual Block .

Введіть наступне, щоб курсор у початковому положенні:

  • Ctrl+ v: Увійти в режим візуального блоку.
  • $: перейти до кінця рядка.
  • [X]j: замініть X на кількість рядків, які потрібно пройти вниз.

Це має створити прямокутний вибір, що йде від курсору на першому рядку до кінця рядків [X] рядка нижче.

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

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

Я використовую візуальний блок, коли можу, я думав, що поділюсь


+1 дійсно приємна відповідь. Але не дуже те, що я хочу, оскільки іноді мій код не так добре відформатований ^ _ ~
Сардатріон - Відновити Моніку

@sardathrion; RE коментар, "добре відформатований". Створюючи таблиці в Markdown, я зміг автоматично заповнювати пробіли в n+1рядках, після створення рядка nVisual Block вибираючи назад ! Іншими словами, форма була схожа на задню 7 або вертикальний перевернутий L, або "не добре відформатована". Лол.
xtian

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.