假设我有这样一句话:
|add_test() (| == cursor position)
并且希望将“ add”替换为“ del”。
del|_test()
我可以按 X 三次,然后按 i 插入并键入 del。 我想要的是类似3c 或3r 的东西,只覆盖3个字符。 这两个都不做我想要的,3c 覆盖3个字符相同 字符,3r 做其他几件事情。
有没有一种简单的方法来做到这一点,而无需手动兴和插入文本?
c3 (‘ c’,‘3’,空格) ,然后键入要插入的字符。(或者可以使用右箭头或 l,而不是空格。)
c3
l
或者,正如@Mike 在评论中所说,如果字符数恰好与您正在删除的字符数相匹配,那么 R就能很好地工作。
R
或 ct_从光标更改为下一个 _字符。
ct_
_
或者,就像@blood 在评论中建议的那样,3s。
3s
我认为 3cl是你想要的。它改变3个字符的权利。我想打 ct_del<esc>但你问的不是这个
3cl
ct_del<esc>
3s,“替换3个字符”与 c3l相同。3cl和 c3l应该是相同的,我不知道为什么你会看到相同的字符重复。我也喜欢使用 t,例如 ct_作为另一个海报提到,那么我就不需要计算字符,只需要输入“ del”。
c3l
t
我也为“替换几个字符”纠结了几天; ‘ r’对于单个字符来说很棒,R对于匹配长度的字符串来说很棒,但是我想要一些类似 OP 要求的东西。因此,我输入了 :help x并阅读了一会儿,结果发现 s和 S的描述只比 x低了几页。
:help x
s
S
x
换句话说,:help是你的朋友。
:help
使用 C { motion }命令:
这个单词是由 是关键词变量决定的。用 : set is 关键字?检查它,然后删除任何“ _”,就像 关键字 =@,48-57,192-255那样。 顺便说一下,看到 翻译: help c和 翻译: help motion如果你想要更多。
如果作品具有相同的长度,您可以使用 R命令,该命令用您输入的内容替换您以前的内容。
给出的其他答案使用数字。文字越长,就越容易不用计数。例如,我经常在标记文件中标题如下:
一些我不想数的超级长的标题
用 yy pp把线翻倍
yy
pp
一些我不想数的超级长的标题 一些我不想数的超级长的标题
用 V突出显示整行 然后使用 r{char}或者在这种情况下使用 r=来获得:
V
r{char}
r=
一些我不想数的超级长的标题 ============================================================== (我在上面添加了一个空格来跳过堆栈溢出的标记格式)
一些我不想数的超级长的标题 ==============================================================