Как добавить строку в конец каждой строки в Vim? - PullRequest
229 голосов
/ 27 февраля 2009

Я хочу добавить * в конец каждой строки в Vim.

Я безуспешно попробовал код

:%s/\n/*\n/g

Ответы [ 10 ]

319 голосов
/ 01 марта 2009

Даже короче, чем команда: search:

:%norm A*

Вот что это значит:

 %       = for every line
 norm    = type the following commands
 A*      = append '*' to the end of current line
319 голосов
/ 27 февраля 2009

:%s/$/\*/g

должно работать. Так что :%s/$/*/g как MrWiggles указывает правильно.

39 голосов
/ 27 февраля 2009

Также:

:g/$/norm A*

Также:

gg<Ctrl-v>G$A*<Esc>
26 голосов
/ 08 августа 2013

Я думаю, что использование режима визуального блока - лучший и более универсальный метод для работы с вещами такого типа. Вот пример:

Это первая строка.
Это второй.
Третий.

Вставить «Привет, мир». (пробел + буфер обмена) в конце каждой из этих строк:

  • На символе в первой строке нажмите Ctrl-V (или Ctrl-Q, если Ctrl-V это паста).
  • Нажмите jj, чтобы расширить визуальный блок на три строки.
  • Нажмите $, чтобы расширить визуальный блок до конца каждой строки. Нажмите A затем пробел, затем введите Hello world. + затем Esc.

Результат:

Это первая строка. Привет, мир.
Это второе. Привет, мир.
Третий. Привет, мир.

(пример из http://vim.wikia.com/wiki/Inserting_text_in_multiple_lines)

10 голосов
/ 16 июля 2014

Если вы хотите добавить Hello world в конце каждой строки:

:%s/$/HelloWorld/

Если вы хотите сделать это для определенного числа, скажем, от 20 до 30, используйте:

:20,30s/$/HelloWorld/

Если вы хотите сделать это в начале каждой строки, используйте:

:20,30s/^/HelloWorld/
5 голосов
/ 15 июня 2013

Вам действительно не нужно g в конце. Так и становится:

:%s/$/*

Или, если вы просто хотите * в конце, скажите строки 14-18:

:14,18s/$/*

или

:14,18norm A*
5 голосов
/ 18 января 2012

... и добавлять (добавлять начало) каждую строку с *,

%s/^/*/g
4 голосов
/ 27 февраля 2009

Один из вариантов:

:g/$/s//*

Это найдет каждый конец строки и заменит его на *. Я говорю «заменитель», но на самом деле это скорее дополнение, поскольку якорь - это особая вещь, а не обычный символ. Для получения дополнительной информации см. Мощность г - Примеры .

3 голосов
/ 27 февраля 2009
:%s/\n/*\r/g

Ваш первый вариант верен где-то еще, но Vim по какой-то причине должен иметь другую обработку новой строки.

1 голос
/ 27 февраля 2009
%s/\s*$/\*/g

это поможет, и ведущие пробелы будут проигнорированы.

...