上一篇博客,讲了“新手”如何“入门”vi,解决了“两眼一抹黑”的情况。知道在vi下如何进行基本的操作,如部署在Linux下的项目,修改配置文件等。
传送门: 史上最简约的vi教程,10分钟包教会
本篇,我们继续vi的学习之旅,主要包括复制和粘贴操作。
1.移动光标
对于用惯了可视化开发工具的读者,初次接触vi学习门槛还是有一些的。虽然上篇文章说明了,可以通过小键盘的“上下左右”箭头移动光标,但,这个是一个“骚操作”。
vi推荐的做法是:在Normal模式下,通过h j k l
来移动光标。
这个无需多言,打开vi,多操作几次就上手了。
当然还有高级的移动光标,暂且不表。
2.复制一行和粘贴
刚接触vi,我尝试过不止一次,ctrl + c
和ctrl + v
来“想当然”进行复制和粘贴,结果你懂的!
[注] 下面谈的所有操作,均在Normal模式下。
-
复制
复制当前行是最基本的操作,
yy
这个大家基本上都熟悉。 -
粘贴
粘贴通过
p
(小写p)或者P
(大写P,通过shift + p
输入)来实现的。其中
p
是在光标所在行的下一行粘贴;P
是在光标所在行的上一行粘贴。 -
交换当前行和下(下)一行
我们可以组合“删除”和“粘贴”操作,实现交换上下行的操作。
ddp
,可以实现交换当前行和下一行。请思考一下为什么?easy,dd是删除当前行,并复制到缓冲区,p是在当前行的下一行粘贴。
ddP
,可以实现交换当前行和上一行。请思考一下为什么?
3.个性化复制
第2部分介绍了复制和粘贴,基本上可以满足大部分的操作。“个性化”复制,怎么办?如复制一个单词,选定后复制...
-
复制一个单词
可以通过
yw
来说实现,这个前提是先将光标定位到单词的开头。 -
复制到下一句的开始
可以通过
y)
来说实现 -
复制到下一段的开始
可以通过
y}
来说实现 -
快选择实现复制
可以通过
v
、shift + v
和ctrl + v
来进行区块选择,然后通过y
进行复制。这基本上可以实现你想要的所有情况的复制。
v
操作: 先输入v,然后“通过hjkl或者上下箭头移动光标”会自动选择一个区域。如果需要复制这个区域,则按y
即可,如果要删除则输入d
即可。shift + v
是在v
的操作基础上,不过其操作是行级别的。ctrl + v
这个就是列选择,用过ultraedit或者editplus的列操作,你会爱不释手的。操作方法同v
!
4.总结
本篇博客是上篇博客的进阶,主要内容就是复制和粘贴。你需要知道的就是:
行操作: yy
复制当前行,p
粘贴到下一行;
块操作: 先输入v
,然后“通过hjkl或者上下箭头移动光标”会选择一个区域。如果需要复制这个区域,则按 y
即可。移动光标到需要粘贴的目标处,p
粘贴到光标所在处。
再次推荐vi教程:
- Learn Vim Progressively 个人认为这个是有史以来最好的vi教程,没有之一。
掌握vi并不难,方法就是,“用”起来就会了。虽然我用的是windows 10系统,我开发中,vs code和IntelliJ IDEA、visual studio都启用了vi的。