有很多种不同的方法可以让完整的单线/多线完成。有没有办法可以在vi中复制部分行,就像行的10个字符一样。
答案 0 :(得分:13)
我猜最常见的部分情绪是:
yaw
:抓住光标当前所在的单词
2yaw
:将光标放在当前位置和下一个(总共2个字)中
ya(
:拉出包含光标的匹配括号
yf.
:从光标移动到下一个.
y$
:从光标移动到行尾
可以使用任何移动键。
答案 1 :(得分:4)
您可以执行y
运动,因此对于10个字符:y10l
从当前光标位置(包括)中抽出10个字符
答案 2 :(得分:4)
剪切和粘贴:
将光标定位在您要开始剪切的位置。
d = delete = cut
y = yank = copy
答案 3 :(得分:2)
我更喜欢按v键,然后使用光标键移动您的选择。然后在满意的情况下按y键。
答案 4 :(得分:2)
你也可以
yt<char> - tank 'till char - i use that a lot
or y/<pattern>/ - yank until pattern
答案 5 :(得分:1)
当然,将光标放在行的开头,键入:
y10l
这会向右侧移动10个字符。如果由于某种原因需要重复执行此操作,只需添加此临时kep映射:
:noremap ,m ^y10l
每次按,m
答案 6 :(得分:1)
如果要复制多行,请尝试使用可视块模式
" beginning of line
C-v
" up-down move 10j or 5k
10l
" copy & paste
y
p
更多详细信息,请参阅wiki
答案 7 :(得分:0)
这是鼠标实际可以击败键盘的地方,特别是当前鼠标光标远离复制目标时,或者如果要选择具有部分起始行或结束行的多行。
使用:set mouse=a
启用鼠标支持。然后用鼠标选择任何不规则的文本块,然后按y