有很多不同的方法可以拉动完整的单行/多行。有没有一种方法可以在 vi 中复制部分行,例如该行的 10 个字符。
问问题
7235 次
8 回答
18
我猜最常见的部分 yanks 是:
yaw
: 拉出光标当前所在
2yaw
的单词 : 拉出光标当前所在的单词和下一个单词(总共 2 个单词)
ya(
: 拉出包含光标的匹配括号
yf.
: 从光标拉到下一个.
y$
: 从光标拉到末尾行的
可以使用任何移动键。
于 2012-10-11T22:51:30.553 回答
8
剪切和粘贴:
将光标放在要开始切割的位置。
- 按v选择字符(或大写V选择整行)。
- 将光标移动到要剪切的内容的末尾。
- 按d剪切(或按y复制)。
- 移动到您要粘贴的位置。
- 按P粘贴在光标之前,或按p粘贴在之后。
- 使用相同的步骤执行复制和粘贴,除了步骤 4 中您将按y而不是d:
d = 删除 = 剪切
y = yank = 复制
于 2015-05-01T11:14:48.843 回答
4
您可以执行y
Movement,因此对于 10 个字符:y10l
从(包括)当前光标位置拉出 10 个字符
于 2012-10-08T10:40:49.903 回答
2
我更喜欢只按 v 键,然后使用光标键移动您的选择。然后在您满意时按 y 键拉出选择。
于 2012-10-08T15:38:37.130 回答
2
你也可以
yt<char> - yank 'till char - i use that a lot
or y/<pattern>/ - yank until pattern
于 2013-01-11T07:47:59.570 回答
1
当然,将光标放在行首,输入:
y10l
这会将 10 个字符拉到右侧。如果您出于某种原因需要重复执行此操作,只需添加此临时 kep 映射:
:noremap ,m ^y10l
每次按下时都会拉出任何行的前 10 个字符,m
于 2012-10-08T10:40:03.137 回答
1
于 2012-10-08T10:47:03.960 回答
0
这是鼠标实际上可能会击败键盘的一个地方,特别是如果当前鼠标光标远离复制目标,或者如果您想选择多行具有部分起始行或结束行。
用于:set mouse=a
启用鼠标支持。然后用鼠标选择任何不规则的文本块,然后按y
于 2012-10-08T15:35:15.460 回答