Vim: вставлять одни и те же символы в несколько строк

Иногда мне нужно отредактировать определенный визуальный блок текста на нескольких строках.

Например, я бы взял текст, который выглядел бы так:

name
comment
phone
email

И сделал бы его похожим на это

vendor_name
vendor_comment
vendor_phone
vendor_email

В настоящее время я бы сделал это следующим образом ...

  1. Выделите все 4 строки строки блока с помощью нажав V , а затем j 4 раза.
  2. Отступ с помощью > .
  3. Вернитесь на одну букву назад с помощью h .
  4. Перейдите в режим отображения блокировки с помощью ctrl v .
  5. Выберите 4 строки вниз, нажав j 4 раза. На этом этапе вы выбрали визуальный блок пробелов 4x1 (4 строки, 1 столбец).
  6. Нажмите c . Обратите внимание, что это в значительной степени смещено влево на один столбец.
  7. Введите "vendor _" без цитаты. Обратите внимание на дополнительное пространство, которое нам пришлось вернуть.
  8. Нажмите esc . Это один из немногих случаев, когда я использую esc для выхода из режима вставки. ctrl c редактирует только первую строку.
  9. Повторите шаг 1.
  10. Сделайте другой отступ с помощью <.

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

Но если мне нужно очистить, то есть ли способ сделать то, что я сделал выше, без создания необходимого пробела с отступом?

Также, почему одновременное редактирование нескольких строк работает только при выходе из режима вставки с помощью esc поверх ctrl c ?

Изменить:

Вот более сложный пример с

name    = models.CharField( max_length = 135 )
comment = models.TextField( blank = True )
phone   = models.CharField( max_length = 135, blank = True )
email   = models.EmailField( blank = True )

до

name    = models.whatever.CharField( max_length = 135 )
comment = models.whatever.TextField( blank = True )
phone   = models.whatever.CharField( max_length = 135, blank = True )
email   = models.whatever.EmailField( blank = True )

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

280
задан Brad Solomon 3 October 2018 в 15:35
поделиться