Как добавить строку в конец каждой строки в Vim?

StackOverflow https://stackoverflow.com/questions/594448

  •  09-09-2019
  •  | 
  •  

Вопрос

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

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

:%s/\n/*\n/g
Это было полезно?

Решение

:%s/$/\*/g

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

Другие советы

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

:%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>

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

Это Первая линия.
Это второй.
Третий.

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

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

Результат:

Это Первая линия.Привет, мир.
Это второй.Привет, мир.
Третий.Привет, мир.

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

Если вы хотите добавить 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/\n/*\r/g

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

%s/\s*$/\*/g

это поможет и обеспечит игнорирование начальных пробелов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top