今天把以前的课本翻开,复习了下vi编辑器的一些操作,发现有些功能根本都用不上,或者是不好用,在此,我总结了一些常用的命令,希望对初学linux的朋友有所帮助。
1 文件操作:
    我们经常在编辑一个文档的时候需要从别的地方复制一些文本,这在windows下十分简单,ctrl+c、ctrl+v就可以实现,那么vi编辑器下该怎么实现呢?比如说我们正在编辑a文件,这时我想把b文件的内容复制到a文件上,只需要在a文件的末行模式下键入:r /path/b即可。注意,路径要使用绝对路径。命令的结果是将b文件的所用信息都复制到a文件的当前光标处。当然我们可以根据实际情况删减一些。
2 光标移动操作
    对于经常修改各种配置文件的朋友来说,我们最常做的操作是修改XX行的某个东东,如果配置文件很长,那么找起来会很费劲。例如我想修改第888行,怎样能快速找到第888行呢?在命令模式下输入888G即可,还用1G是找到行首,G是找到行尾也是比较常用的。
3 删除操作
    如果文件里面有一行或者几行我们想删除它怎么办呢?如果是一行的话,在命令模式下输入dd即可删除光标所在的行;如果是5行怎么办?同样是在命令模式下输入5dd即可删除从光标开始的往下的5行。
4 复制操作
    vi编辑器由一个剪切板缓冲区,用于存放被删除或者复制的内容。当使用删除命令对文本进行删除时,最后一个被删除的文本内容将会被复制到缓冲区中;同样使用复制命令也会将所复制的内容复制到缓冲区中。在vi中,如果我想复制一行的话,我只需要在命令模式下输入yy即可复制当前光标所在行;如果我想复制5行的话,输入5yy即可。复制完了要做什么呢?当然是粘贴啦,找到你想要粘贴的地方按p即可。
5 查找替换操作
     我想在一片很长的文档中快速的找到我需要的某个单词怎么办?比如说我想找apple,我只需要在命令模式下输入/apple回车即可,当然也可以使用?apple。两者的不同之处在于前者是自上而下查找,后者是自下而上查找。
    找到apple了,看来还不少呢,我想把apple换成oregon,如果一个一个的修改实在是太麻烦了,我们可以在末行模式下使用:%s/apple/oregon/g即可将所有的apple替换成oregon。如果我还想保留几个apple怎么办呢?那么就使用%s/apple/oregon/gc,参数c表示确认,也就是你没替换一个就提示你是否进行替换,这样就可以批量定制替换了。
6 编辑多个文件操作
    举个例子我们要同时编辑/etc下面的三个文件,我们只需要在/etc目录下vi a b c即可同时打开这三个文件。那么我想知道我想知道当前我操作的是那个文件怎么办?在末行模式下输入:args将显示你打开的所有文件,其中使用中括号括起来的就是你当前操作的文件。我想切换怎么办啊?使用:next或:prev可以实现向前切换或向后切换。如果是:next!或:prev!表示强制切换,用于你修改后并不想保存的情况下。
    好了,关于vi编辑器的常用功能就介绍到这,我上面写的是我所经常用到的,其实vi编辑器的命令相当多,不过大多数都是比较鸡肋的(个人观点),写这篇文章的目的是让读者掌握百分之二十的命令去应对百分之八十的问题,呵呵。