Vim 键绑定删除直到(但不包括)下一个句点

Vim 键绑定删除直到(但不包括)下一个句点

我注意到编辑中的一个常见习惯是希望删除直到下一个周期(但不包括下一个周期)的所有内容。经过一些在线研究后,我发现以下命令可以工作(我没想到搜索会工作,但他们确实如此):

d/\.

然后它会突出显示页面上的所有句点,因此我想在后面加上:noh.

我尝试制作自己的地图:

map <leader>. :normal d/\.<cr>:noh<cr>

我选择使用是:normal因为我不确定它如何能够“告诉”我希望搜索结束的位置。然而,这却失败了。它什么也不做。它在状态栏中显示它运行:noh良好,所以我认为它可以正常执行命令。它就是行不通。

:normal d/\.当我尝试单独作为命令运行(在 Vim 中)时,我在状态栏中收到以下消息:

YR:Aborting command d/

这是来自扬克环.vim,所以我暂时禁用它。现在,一旦我运行该命令,它就什么也不做。就开心地坐在那里。

澄清一下:无论有没有 yankring,手动输入命令都可以。只是我无法得到任何map我尝试过的工作,无论有没有 yankring。

我认为问题的根源是当我d/正常打字时,会出现提示让我搜索(此方法工作正常)。一切都很好,但是有什么方法可以自动执行此操作,以便将其绑定到<leader>.

如果需要任何其他信息,我很乐意提供。

答案1

如果该.字符与光标在同一行,则删除后可以执行dt.、 或ct.进入插入模式。

答案2

顺便说一句,如果你想删除一个句子,你可以使用句子向前运动,如下所示:

d)i.

意思是,删除包括句号的句子,然后再次插入。

d/\.如果您想删除多行并且存在非文本文档上下文,例如文本之间的空行并且您确实想删除到下一个句点,则这是必要的。

如果句点在同一行,您可以使用til-before动作:dt.

打字

:normal d/\.^M

Ctrl+V+Enter在最后)

对我有用。

但我不得不说我不明白 的必要性:normal

我的意思是,使用

:map <F10> d/\.<CR>:noh<CR>

搜索从光标所在位置开始,到下一个句点结束。

相关内容