之前介绍了nano编辑器,vi/vim在功能上更加强大,所以一般都使用vi/vim编辑器编写脚本。vim在vi基础上添加了更加友好的编辑界面,也更容易发现错误。

   也可以称为模式化编辑器:编辑模式(命令模式)、末行模式、插入模式(输入模式)、替换模式、可视化模式,通过良好的结合各种模式进行脚本编辑。

    一、vi/vim的打开方式:

        vi/vim:打开vi/vim的界面;

        vim file:file存在,则打开并将光标默认放置在第一行第一个字符;

        file不存在,则以新文件的方式打开,若保存,则文件被创建,若不保存,文件消失;

        vim +# file:制定光标在#行行首;

        vim + file: 光标定位在最后一行行首;

        vim+ /PATTERN/打开文件,并且将光标定位至首次被PATTERN匹配的行的行首位置;即只完成首次匹配;

    二、vim的关闭方式:

     末行模式的关闭:

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

    :q!强制退出但不予保存;

    :w 保存修改的内容;

    :wq保存修改的内容并关闭vim编辑器;

    :wq!对于root用户来说,一些只读文件的修改可以强制保存并退出;

    :w!强制保存;

     编辑模式的关闭:

    ZZ退出保存;

    ZQ退出不保存;

     在vim的编辑模式中,移动光标:

         逐字符移动;

    ARROW,上下左右键;

    命令hjkl,在有些键盘上没有配置上下左右键时使用,前面可加数字,#h向左移动#个字符;

         逐字移动;

    w移动到下一字首;

    e移动到下一字尾;

    b回到上一个字首;

         行内跳转;

    0绝对行首;

    ^相对行首;

    $行尾;

         行间跳转;

    #G直接将光标移动至第#号行;

    G直接将光标移动至最后一行;

    gg直接将光标移动至第一行;

     末行模式中光标移动:

    :#将光标移动至第#行;

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

    三、翻页:

    ctrl+f向下一屏forward;

    ctrl+b向上一屏back;

    ctrl+d向下半屏down;

    ctrl+u向上半屏up;

    四、逐字符删除:

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

    X删除光标所在位置左侧的单个字符;

    五、编辑模式中的万能删除命令:

    d:删除光标经过的所有内容;

    dd:删除光标所在行;

        在末行模式下:

         :m,nd删掉m到n行的内容;

    .表示当前光标所在行;

    $表示尾行;

    m,+nd从当前光标所在行开始,在经过n行;

    六、粘贴:

    p:向右向下进行粘贴;

    P:向左向上进行粘贴;

   末行模式下:

    p;

    七、编辑模式中的万能复制命令:

    复制光标经过的所有内容;

    用法与d命令相同;

    八、模式的切换:

  1.从编辑模式到末行模式:

:输入命令 ;

/和?进行查找,n和N,n表示顺序查找,N表示逆序查找;

/ 自上而下;

?自下而上 ;

  2.从末行到编辑模式:

esc键;

enter键;

backspace键;

  3.从编辑模式到输入模式:

I将光标移动至行首并进入输入模式;

i光标位置不变在位置前面插入信息;

A将光标移动至行尾并进入输入模式;

a在光标所在位置的后面插入字符;

O在光标所在行的上面插一行;

o在光标所在行的下面插一行;

c更换整行内容;

C从光标所在位置到行尾删掉,并进入输入模式;

s删除光标所在位置的一个字符,进入输入模式;

S更换整行内容;

  4.从输入模式到编辑模式:

esc键;

  5.从编辑模式到替换模式:

R进入替换模式;

  6.从替换模式到编辑模式:

esc键;

  7.从编辑模式到可视化模式:

v逐个字符选择;

V选择整行;

在选取之后可以执行复制或删除的操作;

只要完成操作就回到编辑模式;

注意:所有的模式切换必须经由编辑模式,两种非编辑模式之间无法直接进行切换;

    九、替换命令:

    r仅仅替换一个字符;

    十、撤销:

    u:撤销一次此前的编辑操作;

    ctrl+r:撤销最近的一次撤销操作;

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

    .;

    十二、特殊的末行命令:

    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.开启或关闭查找高亮显示:

     :set nohlsearch->nohl;

     :set hlsearch;

    5.开启和关闭语法着色:

     :syntax on;

     :syntax off;

    十三、vimtutor:

      称为vim导师,我们可通过打开vimtutor来练习vim中的各种操作。

  vi/vim编辑命令中的小操作较多,多多练习,慢慢熟练起来就好。