第十七章:第15节Linux vi工具——命令模式下复制粘贴、剪切删除、替换

更新于:2018-12-07 11:20:37

我们除了进入编辑模式下可以编辑文件,在命令模式下,使用一些命令也是可以对文件做一些编辑的。


1)复制粘贴 copy paste

yy


yy是复制的命令


1.png


在yy前可以加上数字:

yy   或 1yy   复制光标当前行

n+yy    向后复制n行内容(包括当前行)


yy复制是以作为单位的,最常用。除了yy,还有


y1G复制游标所在行到第一行的所有数据
yG复制游标所在行到最后一行的所有数据
y0复制光标所在的那个字符到该行行首的所有数据
y$复制光标所在的那个字符到该行行尾的所有数据


复制完,接着需要粘贴的命令,不然复制也就没意义了。


p


p命令是粘贴命令。


1.png


p(小写): 在光标所在位置向下新开辟一行,粘贴
P(大写): 在光标所在位置向上新开辟一行,粘贴


总结:


复制粘贴楠神不好演示,大家自己练习。


yy -> p


我们平时修改配置文件,相同的代码(个别数值不一样)需要写好几行,进入编辑模式一字一字地敲太慢了,复制粘贴就会派上大用场。


启用复制粘贴命令不会进入编辑模式。


2)剪切删除 shear delete


上节学习的大小写s具有删除功能,它是真删了。接下来讲的几个删除命令,实际上是剪切,删除过后,使用p命令可以粘贴的。

dd


1.png


dd   或 1dd   删除光标当前行

n+dd    向后删除n行内容(包括当前行)


1.png

dd过后:

1.png


删掉一行,并且不留空行


dd是比较常用的,经常需要删行。如果只删除个别字符,可使用


x: 删除光标后一个字符,相当于 Del
X: 删除光标前一个字符,相当于 Backspace

1.png


x前面也可以加数字。稍作微修,x用着更方便些。这里就不演示了。


nxn 为数字,连续向后(仅限本行内)删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
nXn 为数字,连续向前(仅限本行内)删除 n 个字符。


其他删除命令(和y复制差不多):



d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
d$ or D删除游标所在处,到该行的最后一个字符
d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符



3)替换 replace


如果某个字符是错误的,除了直接进入编辑模式修改,还有一个更快捷的命令可以做到修改,那就是

r+字符      快速替换单个字符


1.png


1.png

输入rt

1.png

光标下(后)的字符a替换了t,光标并未后移。如果再次替换,还得重新输入r+字符。


命令r只适合做细微地修改,做大地改动就不如进入编辑模式,或者使用R进入替换模式。


R和r一样,也是替换命令。

R会一直取代光标所在的文字,直到按下 ESC 为止;


R起到的效果和进入编辑模式差不多,只是R进入的是

1.png

替换模式(Replace mode)