Vim使用regex删除行并将它们添加到注册表

Vim使用regex删除行并将它们添加到注册表,vim,neovim,Vim,Neovim,我有以下映射: vnoremap <leader>dab "hy:v/<c-r>h/d<cr> vnoremap <leader>daa "hy:g/<c-r>h/d<cr> vnoremap dab“hy:v/h/d vnoremap daa“hy:g/h/d 它通过regex search删除了多行,但是,这些行只是被删除了,我希望它们进入注册表,这样我就可以在运行这些命令后对它们进行pase 这

我有以下映射:

vnoremap <leader>dab "hy:v/<c-r>h/d<cr>
vnoremap <leader>daa "hy:g/<c-r>h/d<cr>
vnoremap dab“hy:v/h/d
vnoremap daa“hy:g/h/d
它通过regex search删除了多行,但是,这些行只是被删除了,我希望它们进入注册表,这样我就可以在运行这些命令后对它们进行pase

这可以通过这个正则表达式搜索和删除来实现吗

编辑:
我可以看到它们被添加到不同的寄存器中,我可以将ex命令保存到单个寄存器中吗?

解释我的解决方案
vnoremap daa“hyqeq:g/h/d E

  • “hy
    将视觉选择存储到
    @h
  • qeq
    相当于删除
    @e
  • d E
    g/
    之后是命令
    :d
    ,但它使用大写寄存器
    @E
    ,这意味着它将向其中添加新内容,而不是覆盖
但是,这有一些缺点:

  • 在映射中使用
    h
    可以中断命令,例如,如果选择包含斜杠字符;您可以通过在模式中添加
    \V
    来避免一些不愉快的情况,但这远远不够完美:
    vnoremap daa“hyqeq:g/\Vh/de
  • @e
    寄存器中添加了一个额外的空行

一种简单的方法,它有几个缺点:
vnoremap daa“hyqeq:g/h/d E
,它将删除的行存储到
@E
中,这很酷!你能解释一下吗?非常感谢。关于
\V
?请参阅
:help/magic
。它使模式成为“游牧式”。