как добавить дополнительный символ после двух символов в каждой строке в vim - PullRequest
0 голосов
/ 05 октября 2011

У меня есть текст в файле, как это:

in IDMAN
ip frghj

Я хочу, чтобы текст был таким:

in *IDMAN
ip *frghj

Ответы [ 4 ]

5 голосов
/ 05 октября 2011

Вы можете сделать:

:%s/\%3c/*

Объяснение:

  • :s - команда замены, % - диапазон для всех строк в файле
  • / - это разделитель шаблонов
  • \%3c - это шаблон, который ничего не соответствует третьему символу в строке
  • * - это выражение подстановки
4 голосов
/ 05 октября 2011

Наведите курсор на заглавную букву I в IDMAN в обычном режиме.

enter image description here

Введите выбор визуального блока с помощью CTRL - V и идите вниз по строке с j.

enter image description here

Войдите в режим вставки с помощью SHIFT - I изатем введите желаемый символ.

enter image description here

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

enter image description here

0 голосов
/ 05 октября 2011

Как добавить символ * после точно трех символа на каждой строке в vim:

:%s/\(...\)/\1*/

см. :help :s, :help range, :help s/\\1

или, короче (большое спасибо @Benoit за :-))

:%s/.../&*/

см. help s/\& (спасибо @Benoit за указание на это)

0 голосов
/ 05 октября 2011

Для файла примера:

in IDMAN
ip frghj

и следующих выходных данных (звездочка в каждой строке):

in *IDMAN
ip *frghj

Последовательность команд следующая (курсор должен бытьна символе, где должно произойти сложение):

CTRL-vjI*ESC

Это означает:

  • CTRL-v: запустить режим визуального блока
  • j: отметить второетоже строка
  • I: перейти в режим ввода для блока
  • *: вставить символ (ы)
  • ESC: закрыть режим визуального ввода, чтобы все отмеченные линии, символы будут добавлены.
...