После команды Vim
:let @a='' | g!/hello/normal "Ayy
у вас будут все строки, у которых нет 'hello' в регистре 'a'. Вы можете вставить его значение командой "ap normal" или поместить это значение в системный буфер обмена с помощью
:let @*=@a
И затем вы можете использовать «Ctrl + V» в Windows или «Cmd + V» в Mac OS или «средний щелчок мыши» в Linux, чтобы вставить текст.
Краткое описание магии:
@ a - это переменная Vim, связанная со значением, хранящимся в регистре 'a'.
"ap , " bp , "cp , .. - это комбинация клавиш в нормальном режиме Vim для вставки значения из определенного регистра.
@ * - это переменная Vim, связанная с системным буфером обмена.
let @ * = @ a помещает значение из регистра 'a' в системный буфер обмена.
Добавьте это в ваш .vimrc или создайте файл без директории плагина.
function s:copy_unmathced_lines(pattern)
let result_lines = []
for line in getline(1, '$')
if line !~ a:pattern
call add(result_lines, line)
endif
endfor
let @* = join(result_lines, "\n")
endfunction
command -nargs=1 CopyUnmatchedLines call s:copy_unmathced_lines(<q-args>)
Вариант использования прост:
CopyUnmatchedLines hello
, а затем просто используйте команду вставки в любом редакторе.