我花了相当多的时间寻找答案,但我只能找到vim的答案,这建议使用视觉模式或寄存器。这些似乎都不像 vi(版本 SVR4.0,Solaris 2.5.0)的选项。我知道
D
、yy
、dd
,它们可以猛拉或删除整行或直到行尾。
我现在想知道是否可以猛拉/删除一行的一部分:比如说,括号内的部分: 我想复制这一部分。
所有移动命令都与
yank
配合使用,例如 h, j, k, l
代表左、下、上、右。因此,如果光标位于 中的第一个
p
I want to co[py this par]t of the line.
y11l
(猛拉十一个埃尔)给出
py this par
y3w
为您提供接下来的 3 个单词,这意味着如果结尾 ]
不存在,它将包括最后的 t
。
如果您的光标位于
[
上(假设它实际上是字符串的一部分),则 y%
(移动到匹配的括号)会给出:
[py this par]
你可以做
y
f
character
这将
[y]ank
直到 [f]inds
无论如何 character
。
在你的例子中。你可以
f p y f r
找到 p - 猛拉直到找到 r
举个例子
我想复制这行的这一部分
我通常会这样做
f
p
- 找到 p
y
- 进入“猛拉模式”
/he line
- 直到找到短语“he line”
Enter
“he line”就是字符后面出现的任何文本,我一直输入,直到我知道选择它就足够了,而不是其他东西。
使用标记功能。
对于这行:“我想复制这行的这一部分。”, 首先使用您想要的任何方式将光标移过“r”字符。然后用“m1”标记它。接下来,将光标移动到“o”字符之后。要选择文本,请使用命令“y`1”。这会将当前光标“o”处的文本拉到标记 1 处的光标位置。然后,您可以移动到另一个光标位置并使用 put“p”命令复制文本。