Я хочу добавить *
в конец каждой строки в Vim.
Я попытался код неудачно
:%s/\n/*\n/g
Я хочу добавить *
в конец каждой строки в Vim.
Я попытался код неудачно
:%s/\n/*\n/g
Ответы:
:%s/$/\*/g
должно сработать. Так должно быть, :%s/$/*/g
как правильно указывает мистер Вигглс .
g
флаг не нужен.
Даже короче, чем команда: search:
:%norm A*
Вот что это значит:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
I*
а не 0i*
сэкономит вам одно нажатие клавиши.
:
, это предварительно заполнит команду, с :'<,'>
которой вы можете затем выполнить:'<,'>norm A*
I
вместо -:%norm I*
Также:
:g/$/norm A*
Также:
gg<Ctrl-v>G$A*<Esc>
g
- это global
команда, которая что-то делает с каждой соответствующей строкой. $
соответствует каждой строке. Это может быть также ^
или .*
. norm выполняет команды, которые вы обычно используете в командном режиме. Значит, A*
добавьте *
в конец строки.
Я думаю, что использование режима визуальных блоков - лучший и более универсальный метод для работы с такими вещами. Вот пример:
This is the First line.
This is the second.
The third.
Вставить «Привет, мир». (пробел + буфер обмена) в конце каждой из этих строк:
Результат:
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
(пример с Vim.Wikia.com )
jj
можно нажать, G
чтобы перейти к последней строке. Это полезно в больших файлах, где нажатие j
до последней строки не практично.
Вам действительно не нужно g
в конце. Так и становится:
:%s/$/*
Или, если вы просто хотите *
в конце, скажите строки 14-18:
:14,18s/$/*
или
:14,18norm A*
... и добавить (добавить начало) каждую строку с *,
%s/^/*/g
Один из вариантов:
:g/$/s//*
Это найдет каждый конец строки и заменит его на *
. Я говорю «заменитель», но на самом деле это скорее дополнение, поскольку якорь - это особая вещь, а не обычный символ. Для получения дополнительной информации см. Power of g - examples .
:% S / \ п / * \ г / г
Ваш первый верен где-то еще, но Vim по какой-то причине должен иметь другую обработку новой строки.
:s///
,\n
соответствует нулевому символу. Раздел:help sub-replace-special
актуален.