Я хочу добавить *
в конец каждой строки в Vim.
Я пробовал код безуспешно
:%s/\n/*\n/g
Я хочу добавить *
в конец каждой строки в Vim.
Я пробовал код безуспешно
:%s/\n/*\n/g
:%s/$/\*/g
должен работать. Так что :%s/$/*/g
как MrWiggles указывает правильно.
Даже короче, чем команда поиска:
:%norm A*
Вот что это значит:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
также:
:g/$/norm A*
также:
gg<Ctrl-v>G$A*<Esc>
Я думаю, что использование визуального блочного режима - лучший и более универсальный метод борьбы с этим типом вещей. Вот пример:
Это первая строка.
Это второй.
Третий.
Вставить "Привет мир". (пробел + буфер обмена) в конце каждой из этих строк:
Результат:
Это первая строка. Привет, мир. Это второе. Привет, мир. Третий. Привет мир.
(пример из http://vim.wikia.com/wiki/Inserting_text_in_multiple_lines)
Если u хочет добавить Hello world в конце каждой строки:
:%s/$/HelloWorld/
Если вы хотите сделать это для определенного количества строк, скажем, от 20 до 30 используйте:
:20,30s/$/HelloWorld/
Если вы хотите сделать это в начале каждой строки, используйте:
:20,30s/^/HelloWorld/
... и добавить (добавить начало) каждую строку с помощью *,
%s/^/*/g
В конце вам не нужен g
. Так оно и делается:
:%s/$/*
Или, если вы просто хотите *
в конце, скажите строки 14-18:
:14,18s/$/*
или
:14,18norm A*
Один из вариантов:
:g/$/s//*
Это найдет все привязки конца строки и заменит его на *
. Я говорю "подставить", но на самом деле это скорее добавление, поскольку якорь - это особая вещь, а не обычный характер. Для получения дополнительной информации см. Сила g - Примеры.
%s/\s*$/\*/g
это сделает трюк и убедит, что ведущие пробелы игнорируются.
:%s/\n/*\r/g
Ваша первая правильна в любом месте, но у Vim по какой-то причине должна быть разная обработка новой строки.