我注意到编辑中的一个常见习惯是希望删除直到下一个周期(但不包括下一个周期)的所有内容。经过一些在线研究后,我发现以下命令可以工作(我没想到搜索会工作,但他们确实如此):
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>
搜索从光标所在位置开始,到下一个句点结束。