在Vi/Vim中,如何在一行中复制子字符串



我的配置文件中有一个字典。

candidates = {'morpheus':(3,1), 'trinity':(3,1), 'neo':(3,1), 'switch':(3,1)}

如果我需要向字典中添加更多的k/v对,我可以用鼠标突出显示一个k/v对(例如'neo':(3,1)(来复制和粘贴,但有没有办法使用vi键盘命令从当前光标拖动到下一个逗号或空格来获取'neo':(3,1)k/v对?

我知道yank单词有yw,但在这种情况下,vi会停留在标点符号处,无法获取我想要的内容。我想我也可以把字符拉到光标的左边或右边,但如果可以的话,我不想数字符。

有没有办法告诉vi从当前光标位置猛拉到下一个空格或下一个)字符?

yw,实际上是"猛拉到下一个单词";而不是";扬克字";,不应被视为一个单独的命令。实际上是两个命令:一个操作符y,然后是motionw。这一点非常重要,因为理解操作符+运动模型可以让你自由地编写非常有表现力的编辑命令。

在这种情况下,您可以使用f)2t,将光标移动到关闭的),这将为您提供以下两个命令:

yf)
y2t,

参见:help f:help t和操作人员+运动模型用户手册介绍::help 04.1

Yank到下一个空格(不包括空格(yt(注意末尾的空格,字符yanking到(

扬克至第二空间(不含空间(y2t

扬克到下一个空间(包括空间(yf

Yank至线路末端y$

Yank all in current'...'yi'

最新更新