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
。它使模式成为“游牧式”。