首页 > 代码库 > vi学习(1)

vi学习(1)

今天下午看了一下vi的常用操作,现在记录下来,方便以后查询。

按vi的模式,命令分为3个部分。

(一) 一般模式下

           字符操作:上下左右箭头(或kjhl)可以实现光标上下左右移动一位。如果想要进行多次移动,可以使用数字+相应的操作符(如:30j表示向下移动30行)。

                           :x,X;x表示向后删除一个字符,X表示向前删除一个字符。nx表示连续向后删除n个字符。

                          :0,$;0(是数字不是字母o)移动到这一行的最前面字符;$移动到这一行最后面的字符。

           页操作: Pg up屏幕向上移动一页,Pg Dn屏幕向下移动一页

           行操作:G,gg,n[Enter];G移动到这个文件的最后一行,nG,表示移动到这个文件的第一行,gg表示移动到这个文件的第一行;  n[Enter]:n为数字,光标向下移动n行。

           查找:/word:向下查找一个名为word的字符串;  ?word:向上查找一个名为word的字符串。

           替换::n1,n2s(注意s)/word1/word2/g(gc替换时要用户确认):n1,n2为行数,再n1到n2行之间查找word1并用word2替换。

                      :1,$s/word1/word2/g(gc),$s表示最后一行,其余含义同上。

          行删除:dd删除光标所在那一行;ndd,删除光标所在的向下n行,如10dd表示连续删除10行。

          复制与粘贴: yy复制光标所在那一行,nyy复制光标所在行向下n行,20yy表示复制20行。

          p表示将复制的数据在光标的下一行粘贴,P表示在光标的上一行粘贴。

          其它:u表示复原,[Ctrl]+r表示重复一次,“.”(小数点)表示重复上一次操作。


(二)一般模式切换到编辑模式

       主要是光标插入的位置随命令的不同而不同。

       i,I; o,O;a,A;r,R;等。


(三)一般模式切换到命令行模式

        :q离开vi;

        :q!强制不保存文件离开。

        :w[filename],将编辑的数据保存为另一个文件。

        :r[filename],在编辑的数据中读入另一个文件,放到末尾。

        :n1,n2 w[filename],将n1到n2的内容保存成filename文件

        :set nu显示行号

        :set nonu 与set nu相反,取消行号

vi学习(1)