#vim
#vim
Вопрос:
Я нахожу фатальные ошибки в своем журнале ansible и копирую их в конец файла, чтобы увидеть все фатальные ошибки.
:g/fatal:/t$
Но я хотел бы скопировать ошибку и следующую строку, потому что следующая строка некоторое время будет «игнорировать», что не нужно учитывать. Я могу найти только реальные фатальные ошибки, которые требуются
Как переместить шаблон и еще несколько строк? В grep мы можем найти -A -B , есть ли какой-нибудь способ в команде g сделать это?
Ответ №1:
Как и все команды ex, унаследованные от vi
and ex
, :help :t
может принимать a :help :range
. В этом случае вы хотите работать с соответствующей строкой и строкой ниже, которая преобразуется в следующий диапазон:
., 1
где:
- левая сторона запятой — это первая строка,
- правая сторона — последняя строка,
.
представляет текущую строку,1
представляет строку ниже текущей строки,
что дает вам эту команду:
:g/fatal:/., 1t$
Обратите внимание, что .
это подразумевается и
является ярлыком для 1
, поэтому его можно сократить до:
:g/fatal:/, t$
Ответ №2:
Редактировать: ответ @romainl строго лучше и должен быть предпочтительнее для того, что пытается сделать OP.
Если все, что вы пытаетесь сделать, это скопировать строку, содержащую «fatal:» и пару строк после этого, вы можете сделать:
/fatal:<CR>y<motion>
, где <CR>
есть Enterи <motion>
может быть, например, 2j
для «этой строки и следующей строки» или G
для «от этой строки до конца файла» и т.д.