vi编辑器

   vim编辑器是众多文件编辑软件中比较好的一个,也是使用最多 ,功能最强大的,提供了图形化界面。

   Vi:unix系统中默认的文本编辑器

   Vimvi编辑器的增强版本,习惯上也称vi

   作用:创建或修改文本文件,维护linux系统的各种配置文件

vim的使用格式:

  vim [选项]…file..

可用选项:

    +#:打文件后,直接让光标处于低#行的行首

    +/PATTERN:打开文件后直接让光标处于第一个被PATTERN匹配到的行的行首

 

vim编辑器有三种模式:

                   命令模式:默认进入的是命令模式,在命令模式中可以对文件进行删除、复制、粘贴等功能,

                   编辑模式:对文件修改编辑

                   扩展模式:对文件保存、退出等

 

三种模式之间的切换:

                   命令模式切换到编辑模式按a A i I o O

                                           a:在光标所在处后面插入

                                           A:在光标所在行的行尾插入

                                           i:在光标前插入

                                           I:在光标所在行的行首插入

                                           o:在光标所在行的下一行插入

                                           O:在光标所在行的上一行插入

                   命令模式切换到扩展模式按Shift+:

                   插入模式到命令模式:按ESC

                   扩展模式到命令模式:按ESC

                  

                   ctrl+s 锁定

                         ctrl+q 解锁       

命令模式操作:

    

 光标跳转:

      ^:跳转至行首的第一个非空字符

      0:跳转至行首

      $:跳转至行尾

      #G、扩展模式:跳转至#

      G:跳转至最后一行

      1Ggg:跳转至第一行

 翻屏操作:

      ctrl+f:向文件尾部翻一屏

      ctrl+b:向文件首部翻一屏

      ctrl+d:向文件尾部翻半屏

      ctrl+u:向文件首部翻半屏

     

 保存退出:

      ZZ;保存退出

      ZQ:不保存退出

 字符编辑:

      x:删除光标处的字符

      #x:删除光标处起始#个字符

      xp:交换光标所在处的字符

     

      ~:转换大小写

 替换命令:

       r:替换光标所在处的字符

       R:切换成替代模式

 删除命令:

    d:删除命令,可结合光标跳转字符实现范围删除

       d$:删除到行尾

       d^:删除到非空行首  

       d0:删除到行首

       dw:删除一个单词,从光标处往后删

       db:删除一个单词,从光标处往前删

       dd:删除光标所在行

       #dd:删除#

       D:从当前光标位置一直删除到行尾ieee,留空行,等同于d$

 

 复制命令:

    y:复制,与d相似

       y$:复制到行尾

       y0:复制到行首

       y^:复制到非空行首

       yw:复制单个单词,从光标处往后复制

       yb:复制单个单词,从光标处往前复制

       #yy:复制#行内容

       y:复制整行内容

 

 粘贴命令:

       p:把复制的内容保存在缓冲区,如果是整行内容,粘贴至下一行,如果不是整行,粘贴至光标所在处的后面

       P:把复制的内容保存在缓冲区,如果是整行内容,粘贴至上一行,如果不是整行,粘贴至光标所在处的前面

 多次粘贴:#i内容[ESC]:粘贴内容#

 

 改变命令:

    c:修改后切换成插入模式

       c$:修改到行尾

       c^:修改到非空行首

       c0:修改到行首

       cw:修改单个单词,从光标处往后修改

       cb:修改单个单词,从光标处往前修改 

       cc:删除当前行斌输入新内容

       #cc:删除#行并输入内容

       C:删除当前光标到行尾,并切换成插入模式

 

 撤销命令:

       u:撤销最近一次的更改

       #u:撤销之前多次更改

       U:撤销光标落在 这行后所有此行的更改

       Ctrl -r重做最后的“撤销”更改

       .重复前一个操作

       n.重复前一个操作n

扩展模式: :q 退出 :q! 强制退出,丢弃做出的修改 :wq 保存退出 😡 保存退出 ? 命令模式 ZZ: 保存退出 ZQ:不保存退

 按“:”进入扩展模式在“:”后添加命令

 命令:

      w:写入

      wq:写入并退出

      x:写入并退出

      q:退出

      q!:不保存,强制退出

      r 文件名 :读文件内容到当前文件

      w 文件名 :另存为

      !命令 : 在底部执行其他命令

      r! 命令 : 执行命令并把命令结果保存到vim所编辑的文件中

 地址定界:

      起始,结束

      #:具体地#行,例如5表示地5

      ##:从左侧#表示行开始,到右侧表示行结束

      #+#:从左侧#表示开始,往后加上#   1+2 表示13

      .:表示当前行

      $:最后一行

      $-1:当前行到倒数第二行

      %:表示全文

      /pat1//pat2/ :从第一次被模式1匹配到的行开始,直到第一次被模式2匹配到的行结束

      #/pat/ :从第#行开始,一直到第一次被模式匹配到的行结束

      /pat/,$:从第一次被模式匹配到的啊很难过开始,一直到最后一行。


 

 使用方式:在地址后面跟上一个编辑命令即可

 

 查找:

      /条件:从当前光标所在处向文件尾部查找

      ?条件:从当前光标所在处向文件首部

     

      多个结果切换:n:与命令同方向

                    N:与命令反方向

 

 查找并替换 s///  分隔符/可以替换 如:s###  s@@@ s$$$

       

      s:在扩展模式下查找替换,与sed命令有相识之处

 

    格式:s/要查找的内容/替换为的内容/修饰符

    要查找的内容可使用已使用正则表达式,替换的内容不能用但可以是用后向引用\1\2…,还可以使用“&”符号引用前面查找是找到的整个内容

    例如:s/ab/&cd/g  :结果就是把ab替换成了abcd

       修饰符:

           i:忽略大小写    

           g:全局替换,默认每一行只替换第一个匹配到的

           gc:全局替换并且每次替换前询问

   

vim的寄存器:

   26个命名寄存器和1个无命名寄存器,常存放不同的剪切版内容,可以不同会话间共享。

            a,b,…z表示,用寄存器表示,放在数字和命令之间

         例如:5tty表示复制5行到t寄存器中

              tp 表示将t寄存器内容粘贴

 

             如果未至定,将使用无命名寄存器

    10个数字寄存器,用012….9表示,0存放最劲复制 的内容,1存放最劲删除的内容,当新的文本变更和删除时,

1转存到22转存到3,以此类推,数字寄存器不能在不同会话间共享。        

 

            

可视化模式:

 

         允许选择的文本块

             v 面向字符

             V 面向行

             crtl -v 面向块

 

示例:

1.png

                                               

 

 

 可视化键可用于与移动键结合使用,突出显示的内容可以被删除,复制,变更,过滤,搜索等。

 

 

多文件模式:

 

     当一个vim同时打开多个文件时,可以用以下命令进行管理

                  :next 下一个

                  :prev 前一个

                  :first 第一个

                  :last 最后一个

                  :wall 保存所有

                  :qall 退出所有

                  :wqall 保存退出

 

 使用多窗口

      vim -o file  水平分割文件

      vim -O file  垂直分割文件

      在窗口间切换:Ctrl+w ,Arrow

单文件窗口分割:

      ctrl+w,s: split,水平分割

      ctrl+w,v: vertical,垂直分割

      ctrl+w,q: 取消相邻窗口

      ctrl+w,o: 取消全部窗口

      wqall 退出

 示例:垂直分割:

垂直.png

示例;水平分割

 

水平.png

定时vim的工作特性

 

   配置文件:永久有效

          全局:/etc/vimrc

          个人:~/.vimrc

   扩展模式:当前vim进程有效

   1  set nu 命令  显示行号  取消 set nonu

   2  set sm 命令  括号成对匹配   取消 set nosm

   3  set ai 命令  自动缩进   禁用 set noai

   4  set hlsearch 命令  高亮搜索  禁用  set nohlsearch

   5  syntax on 命令  语法高亮  禁用 syntax off

   6  set ic 命令 忽略字符大小写  禁用  set noic

vim练习题:

1、复制/etc/profile至/tmp/目录,用查找替换命令删除 /tmp/profile文件中的行首的空白字符 ?

2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查 找替换命令为/tmp/functions的每行开头为空白字符的行的 行首添加一个#

3、如何设置tab缩进为4个字符? ?

4、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换 /tmp/functions文件中的/etc/sysconfig/init为/var/log; ?

5、删除/tmp/functions文件中所有以#开头,且#后面至少 有一个空白字符的行的行首的#号

解答:

1、操作

前空.png

效果:

前空效果.png

2、操作:

空空.png

效果:

空空效果.png

3、操作

打开 ~.vimrc 或者/etc/vimrc添加如下项:

vimrc.png

4、操作

操作前.png

效果:

效果.png

5、操作:

删前.png

效果:

效果啊啊啊.png

原创文章,作者:ZJM,如若转载,请注明出处:http://www.178linux.com/33299