vi编辑器使用实录

    vi的重要性不必多讲,之前没有系统的学过,只知道vi强大,使用vi也是像只用windows下没有鼠标的记事本一样。。。。额,这个形容太贴切了,哈哈

    今天系统学习一下,这里做一些记录,不记录就忘记了。。。

    1.    vi三种工作模式,分别是:输入模式,命令模式,末行模式

        1.1    模式切换:

                进去默认为指令模式,输入i,a,o,I,A,O 可进入输入模式

                输入模式下 Esc 进入命令模式

                命令模式下输入 : (冒号)进入末行模式

                末行模式按两次ESC命令模式

    2.    编辑模式进入输入模式详解:(参考马士兵linux视频资料)

                i :在当前光标所在字符的前面,转为输入模式;

                a:在当前光标所在字符的后面,转为输入模式;

                o:在当前光标所在行的下方,新建一行,并转为输入模式;


                I :在当前光标所在行的行首,转为输入模式;

                A:在当前光标所在行的行尾,转为输入模式;

                O:在当前光标所在行的上方,新建一行,并转为输入模式

    3.    光标的移动:(命令模式)

        3.1    逐字符移动

                左:h    右:l    下:j    上:k

                数字加以上字母,可以往相应方向移动n个字符,如:10h,往左移动10个字符。

        3.2   以单词为单位移动:

                w:移至下一个单词词首(往后);

                e:移至下一个单词词尾(往后);

                b:往前跳至当前或上一个单词的词首。(往前)

                同样,可以在字母前加数字,如:10w

        3.3    行内跳转:

                0:跳至绝对行首(zero)

                $:跳至绝对行尾

                ^:行首第一个非空白字符

        3.4    行间跳转

                #G:跳至第#行;

                G:最后一行

                gg:第一行

                

                末行模式下,直接给出行号即可;

    4.    关闭文件:

        4.1    末行模式关闭文件

                :q    退出

                :wq    保存并退出

                :q!    不保存强制退出

                :w    保存

                :w!    强行保存

                :wq-->:x

        4.2    编辑下退出

                ZZ 保存退出

    5.    删除

        5.1    删除单个字符:

                x    删除光标所在处的单个字符

                #x    删除光标所在处及往后的#个字符

        5.2    删除命令d

                d命令和跳转命令组合使用

                #dw,#de,#db


                dd    删除当前行

                #dd    删除当前行及往后共#行

  

    6.    复制粘贴

        5.1     复制y,用法类似d

                #yw,#ye,#yb

                yy    复制当前行

        5.2    粘贴p

                如果复制的为整行内容,则粘贴至光标所在行下一行,若复制或者删除的内容非整行,则粘贴于光标所在字符的后面。(删除相当于剪切)

    7.    撤销编辑操作u

            u    撤销前一次的编辑,连续按u,连续撤销

            #u    撤销最近#次操作

            Ctrl+r    取消最近一次的撤销 

    8.    查找替换

            8.1    查找

                    /aaa   可以找到关键字aaa,输入n找到下一个,输入N找到前一个(类似man里面)

            8.2    替换

                    复杂命令,先进入末行模式,然后输入替换的命令,比如,要讲代码里面所有原本是void的返回值改为String

                :1,$s/void/String/g

                    命令解读,1是指第一行开始,$指的是到文件末尾,s指的是substitute,查找替换,/为分隔符,也可以使用#或者+作为分隔符,此时中间出现的/不会做为分隔符,@也可,查找void,替换为String,g指的是global,全局替换,最后可以加i指的是忽略大小写,不忽略可以不加 ,此处不应该加。

                  或者

                  :%s/void/String/g    这样也可以,%指的是任意字符,也就是全文意思了

    9.    显示行号

            :set number    或者    :set nu

猜你喜欢

转载自blog.csdn.net/sinat_34875106/article/details/79768275