d/x<CR>
或v/x<CR>d
,如果我想先查看选择内容然后删除。 例如,如果光标位于x的第n个空格之后,该如何从当前光标位置删除呢?
yada yada yada x
yada yada yada x
yada yada yada x
xx
,我输入命令删除第三个x结果需要为:
yada
xx
#1 楼
您可以:wd4/x<Enter>
如果从文本的左上方开始
说明
/>
w
:移动到下一个单词的开头d
:删除4/x<Enter>
:直到x出现第4次如果您不知道事先要执行的次数,也可以执行以下操作:
d/x<Enter>
然后按.
重复#2 楼
您可以通过键入<n>df<x>
来执行此操作,其中:
<n> is the number of occurrence of particular character
df<x> means delete till you find the occurrence of character x
#3 楼
<n>macro
在vim中通常用于重复宏“ n”次。 。
类似地,要删除到第3次出现x,您可以使用
1dfx
。评论
我认为您错过了“宏”这个词:在vim中,宏是记录在寄存器中的键序列,并使用@x调用,其中x是您的寄存器。您所指的是普通模式命令。
–statox♦
17年7月26日在7:31
是的,我的意思是普通命令。但这对于宏也是如此。我们可以通过在宏之前添加一个数字来运行该宏n次。
–thenakulchawla
17年7月26日在7:33
是的,这是真的。我只是指出
–statox♦
17年7月26日在7:39
#4 楼
给定:yada yada yada$
yada yada yada x$
yada yada yada x$
yada yada yada x$
xx$
其中
$
指示行的结尾(:set list
模式),如果光标位于第一行中第二个yada
的开头,则首先使用h备份到前一个空格,以将其包括在删除中。然后只需4d / xEnter。换句话说,只是在d / x前面有一个计数。结果完全是:yada$
xx$
评论
额外提示:这也适用于f和朋友(F,t,T 、;):例如2fx将带您到第二个x或2;将重复最后一个f两次。
–马丁·图尔诺伊(Martin Tournoij)
16年1月14日在18:21
@Carpetsmoker:这仅适用于当前行中的字母。
–于尔根·克雷默(JürgenKrämer)
17年7月28日在6:43