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 保存退出 :x 保存退出 ? 命令模式 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

(0)
上一篇 2016-08-15 09:25
下一篇 2016-08-15 09:25

相关推荐

  • 2016-08-12作业

    1、查找/var 目录下属主为root ,且属组为mail 的所有文件 [root@localhost bin]# find /var -user root -group mail /var/spool/mail /var/spool/mail/root   2、查找/var 目录下不属于root 、lp 、gdm 的所有文件 find /var …

    Linux干货 2016-08-15
  • Linux进程管理

    Linux进程及作业管理      内核的功用:          进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能          Process: 运行中的程序的一个副本;      …

    Linux干货 2017-01-05
  • HTTPD-相关的配置

    一次完整的HTTP请求处理过程: 1、建立连接:接收或拒绝链接请求 2、接受请求:接收客户端请求报文中对某资源的一次请求的过程 Web访问响应模型(Web I/O) 单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请 求被串行响应; 多进程I/O模型:并行启动多个进程,每个进程响应一个链接请求; 复用I/O结构:启动一个进程,同时响应N个…

    2017-08-29
  • Linux文件之普通权限及其特殊权限

    普通权限: 当我们使用ls -l命令查看某个文件时: [root@centos7 ~]# ls -l file1.txt  -rw-r–r–. 1 root root 30286 Aug  1 19:30 file1…

    Linux干货 2016-08-04
  • 大概认识linux

             linux简介 其实对Linux系统不是很了解,都是在百度和谷歌搜索出来,才发现Linux很多版本。各版本各优缺点。首先简单说下发展史,Linux在1991年10月5号(这是第一次正式向外公布的时间)在芬兰诞生,以后借助于Internet网络向全世界各地传播,由计算机爱好者的再次开发新功能和…

    Linux干货 2016-05-29
  • Linux运维之磁盘管理

    ※磁盘管理 计算机是由五大组成部件:输入设备,输出设备,存储器,运算器,控制器,其中输入设备我们称之为I/O设备,如键盘,扫描器,运算器和控制称之为cpu,存储器如,内存,硬盘,优盘。计算机其实只需要内存和cpu其实已经可以完成工作了,但是内存属于随机存储设备,断电之后就丢失数据,所以我们就需要通过其他的辅助存储设备来弥补内存的不足,这些辅存我们称之为外存。…

    Linux干货 2016-08-27