vi编辑器:全屏的文本编辑器

    vi:Visual Interface,可视化界面


vim:vi iMproved

    相对vi有更多新特性:

      1.语法着色支持

      2.更多的命令

      3.历史记录

    

    

    模式:

      编辑模式(命令模式),默认工作模式

      插入模式(输入模式),文本信息的自由编辑,在左下角有"Insert"标记;

      ex模式(末行模式),对于编辑器本身某些属性和功能的设定,也可以进行文本编辑操作

      其他辅助模式:

        替换模式:输入的信息直接替换光标所在位置的内容

        可视化模式


Vim编辑器基本操作

一.打开vi/vim操作界面:

    1.vi/vim命令

    2.vim file

        1)打开此文件,默认光标在第一行第一字符

        2)file不存在,就直接以新建文件的方式打开

    3.vim +# file:

        在打开指定文件时,将光标直接定位在文件的第#行的行首。

    4.vim + file:

        在打开指定文件时,直接将光标定位在最后一行行首

    5.vim +/PATTERN/:

        打开指定文件时,将光标定位在首次被PATTERN匹配到的行的行首



二.关闭vi/vim的操作界面:

    ex模式中的操作:

      :q,直接关闭vim编辑器,不保存修改内容

      :Q,直接关闭vim编辑器,强制退出但不保存修改的内容

      :wq,保存已修改的内容并退出

      :wq!,对于无权更改的文件强制保存,并且在强制保存之后强制关闭vim编辑器


    编辑模式中的操作:

      ZZ,保存并关闭vim编辑器

      ZQ,不保存


三.在vim的编辑方式中,光标的移动方式:

    编辑方式中的光标移动方式:

    1.逐字符移动:

        1)左右箭头

        2)h:向左移动 l:向右移动

    2.逐字移动:

        w:移动光标至下一个字的字首

        e:当前字或下一个字的字尾

        b:移动至前一个字的字首

    3.行内光标跳转:

        0:绝对行首

        ^:相对行首

        $:绝对行尾

    4.行间跳转:

        1)上下箭头

        2)j:向下移动 k:向上移动

        3)#G,直接将光标移动至#行首

        4)G,直接将光标移动至文档的最后一行

        5)gg,回到第一行


    ex模式中的光标移动:

      :#,直接将光标移动至行号#的行首

      :l,直接将光标移动至文档第一行行首

      :$,直接将光标移动至文档的最后一行行首


四.翻页

    PageDown或PageUP可以实现翻页:

    ^f:向下翻一页

    ^b:向上翻一页

    ^d:向下翻半页

    ^u:向上翻半页


五.删除

    1.逐字符删除:

        x:删除光标所在位置的字符

        X:删除光标所在位置的左侧的一个字符

    2.删除光标移动过程中所经过的所有内容:

        d:dh,dl,dj,dk,dArrow,dw,de,db,dG,dgg

            dd:删除当前光标所在行


    ex模式中的操作:

        :d,删除光标所在行

        :#d,删除第#行

        :m,nd,删除从第m行开始到第n行结束中间所有行

        :m,+nd,删除从第m行开始,以及后面n行内容

        :.,+nd,删除从当前行极其后面n行的内容

        :.,$d,删除从当前行到最后一行


    注意:在vim的操作中,所有的删除操作,同时意味着剪切;


六.复制

    编辑模式中的操作:

        y:删复制光标移动过程中经过的所有内容

            yh,yl,yj,yk,yArrow,yw,ye,yb,yG,ygg,y0,y$,y^

            yy:复制当前光标所在行


    ex模式中的复制:

        :y,复制光标所在行

        :#y,复制第#行

        :m,ny,复制从第m行开始到第n行结束中间所有行

        :m,+ny,复制从第m行开始,以及后面n行内容

        :.,+ny,复制从当前行极其后面n行的内容

        :.,$y,复制从当前行到最后一行


七.粘贴

    编辑模式中的操作:

        p(Lower):如果是行内的复制和剪切操作,在光标右侧完成粘贴,如果是多行的复制或剪切操作,在光标的下方完成粘贴

        P(Lower):如果是行内的复制和剪切操作,在光标左侧完成粘贴,如果是多行的复制或剪切操作,在光标的上方完成粘贴


    ex模式中的操作

        :p(不常用)


八.模式切换

    编辑模式(命令模式)被称为vi编辑器的基础工作模式:所有其他模式之间进行切换的中转站

        1.编辑模式→ex模式:

          ":",表示进入ex模式并完成命令的执行

          "/"(自上而下)或"?"(自下而上),开启ex模式中的匹配查找功能

          n:下一个 N:上一个


        2.ex模式→命令模式:

          双击ESC

          Enter键

          Backspace键


        3.编辑模式→输入模式(插入模式)

          i,I,a,A,o,O,s,S,C,cc

          i,在光标所在位置的左侧开始输入

          I,在行首开始输入

          a,在光标所在位置的右侧开始输入

          A,在行尾开始输入

          o,在当前光标所在行的下方插入一个新行

          O,在当前光标所在行的上方插入一个新行

          s,将当前光标所在位置的字符删除,在光标左侧开始输入

          S,将当前光标所在行删除,在行首开始输入

          C,删除光标所在位置直到行尾,并且在行尾开始输入

          cc,相当于S命令


        4.输入模式→编辑模式

          ESC


        5.编辑模式→替换模式

          R


        6.替换模式→编辑模式

          ESC


        7.编辑模式→可视化模式

          v,以字符为单位进行矩形选取

          V,以行为单位进行举行选取


        在选取完成之后,可以使用d命令进行删除,也可以使用y命令进行复制


九.替换命令

    r:不进入输入模式而替换光标所在位置的字符


十.撤销

    U:撤销当前行内的操作

    u:撤销此前的一次编辑操作,只要没保存过都可以撤销

    ^r:撤销最后一次被撤销的操作


十一.重复之前的一次编辑操作

    .


十二.多文档编辑

    1.vim file1 file2 file3...

        :next 查看或编辑后一个文档

        :prev 前一个

        :first 第一个

        :last 最后一个

    2.vim -o|-O file1 file2 file3...

        -o 水平打开所有窗口

        -O 垂直打开所有窗口

        通过^w 松手 Arrow切换窗口


十三.ex模式中的常用命令

    1.显示和取消行的编号

        :set number(:set nu)

        :set nonumber(:set nonu)

    2.开启或关闭字符大小写的敏感度

        :set ignorecase(:set ic)

        :set noignorecase(:set noic)

    3.开启或关闭自动缩进功能

        :set autoindent(:set ai)

        :set noautoindent("set noai")

    4.开启或关闭语法着色

        :syntax on

        :syntax off

    5.开启或关闭查找高亮

        :set hlsearch

        :nohl

    6.另存为

        :w /path/to/somewhere

        :m,nw /

    7.从其他文件读取内容

        :r /path/from/somewhere

    8.调用shell命令

        :!COMMAND