原文地址:Vim实战指南(三):高级技巧缓存
当vi入门后,在你平常使用中,会遇到下面几个问题:工具
我编辑好的文本,怎么没法保存?是否是要从新来一次?命令行
我误操做,怎么回退撤销?只能退出vi从新打开吗?code
我能同时复制多个不连续的行吗?一行一行复制粘贴太慢了。get
下面我将要介绍的内容不只会解决上述问题,还会介绍几个高级小技巧。io
一般咱们使用vi打开或编辑文件都是直接敲击vi+文件名,如:入门
$ vi file
实际上,你能够用vi+行号来打开文件,这将使光标直接调到指定的行数,这对于根据错误行号排查问题尤其方便:基础
$ vi +3 file #这将使光标移动到第3行 $ vi + file #这将使光标移动到文件的末尾 $ vi + /pattern file #这将使光标移动到第一个知足pattern的位置
若是你但愿以只读模式打开文件:file
$ vi -R file
若是你但愿强制打开可写模式,在vi的命令行模式下敲入:技巧
:w!
拷贝到另外一个文件:
:w newfile
vi一共能够撤销以前的九次操做,这九次操做存放在vi的九个缓存区中,用数字1-9表示。
当你但愿撤销第三次操做,输入:
"3p
若是你不记得应该撤销第几回操做,能够输入:
"1pu.u.u.
来找到你想要的内容,其中u撤销上一条命令的意思,.是重复上一条命令的意思,详见Vim实战指南(一):基础编辑命令。
事实上,vi的缓存不单单用于撤销,还能用于复制和粘贴,vi提供了字母a-z共26个缓存区供你使用。
当你但愿拷贝的内容存放到缓存区c,输入:
"cyy
你也可使用组合命令,拷贝3行到缓存区c,输入:
"c3yy
粘贴缓存区c的内容,输入:
"cp
删除也一样可使用缓存区c,输入:
"cdd
善用缓存区,还能让缓存区变成书签标记供你使用。
当你但愿创建标签c时,输入:
mc
跳转到标签c所在的行,输入:
'x
跳转到标签c所在的字符处,输入:
`x
移动当跳转前的行的光标处,输入;
''
移动到跳转前的行首,输入:
``
''和``的用法详见Vim实战指南(二):光标移动技巧。
掌握上述的高级技巧,将让你的编辑技巧比别人技高一筹。没必要再机械地来回跳转光标或者一行行复制粘贴了。你会发现vi提供的高级功能,远比其余文字处理工具强大的多。