Vim编辑器详解

VIM编辑器详解

       今天主要讲一下Linux文本编辑器中的一个重要工具Vi/Vim,Vim是Vi的提升版本,所以主要讲解Vim的使用。Vim对于应用Linux操作系统异常重要,无论是脚本,还是修改配置文件,亦或是获取你想要的信息都离不开Vim。总而言之,只要你想学习Linux,Vim编辑器是你必须要学的。

      Vim(Virtual Interface Improved)

      Vim命令的使用格式:Vim    [optinos]    /path/to/somefile

     一、 Vim的命令的使用有三种方式:

       1、编辑模式:此模式大致的意思是通过Vim命令直接进入文本之后的默认状态即是此模式。你可以直接通过键盘的字母键对其进行操作,比如:x 为直接删除光标所在符号或字母。

       2、输入模式:输入模式,顾名思义,即是你在该模式下可以对打开的文本进行输入或删除操作。

    进入该模式可使用如下方式:

     i:当前光标处输入内容
     I : 在当前光标所在行的行首
    a:在当前光标所在处的后面
    A : 在当前光标所在行的行尾输入
    o:在光标所在行的下方新增一行空白行
    O : 在光标所在行的上方新增一行空白行

       3、末行模式:进入末行模式的方式是 ":" (冒号),输入冒号需使用shift功能键,进入该模式后屏幕最下方左侧会出现:,你可以在:后进行相应的文本操作。在该模式下,你可以编辑、查找任意你想要的文本。

      如图:wKioL1YlIOuDcBdKAAAcTSJm4XQ093.jpg所示,即进入了末行模式。

    以上为进入三种模式的相关方式,而在生产环境下三种模式之间的来回切换更加常用:

    编辑模式——>末行模式    :

    末行模式——>编辑模式    ESC

    编辑模式——>输入模式    a,A,i,I,o,O

    输入模式——>编辑模式    ESC

    输入模式——>末行模式    先进入编辑模式

    末行模式——>输入模式    先进入编辑模式

    4、退出vim编辑界面

    末行模式下:

        :x    //save & quit

        :q    //可以在文本尚未进行任何改变的前提下退出

        :q!   //不保存编辑,强制退出

    编辑模式下:

            ZZ    保存并退出

    输入模式下:

            无法直接退出,需切换至前两种模式下退出

    二、用vim打开文件

       vim可以直接打开多个文件,如:vim  /etc/passwd  /etc/sysconfig/network   打开之后默认显示最前面的文件,即/etc/passwd,如想切换至/etc/sysconfig/network 可在末行模式下 : next 即可进入network文件中。

        总结如下:

     :next    下一个
     :prev    上一个
     :first     众多文件中的第一个
     :last      最后一个
     :qall      退出所有的文件
     :wqall   修改并退出多个文件       

        也可利用vim加适当选项来以一种特定的方式来打开文件,如:

    vim -o  /etc/passwd  /etc/sysconfig/network

    打开显示为:

    wKiom1YlIUPgeh-nAAKrJkqI02M251.jpg/etc/passwd与/etc/sysconfig/network两个文件的显示方式为上下显示,光标停留在/etc/passwd文件中,移至下面的文件,Ctrl+w 松开案件之后 按↓箭头即可切换。

如想切换至上面的文件,Ctrl+w 之后按↑箭头即可切换。


使用Ctrl+w还可以在光标所在屏幕中继续分屏

Ctrl+w松开时候 按v键 左右再次分屏,按s键上下再次分屏





  -O 大O选项可以将文件左右分屏,切换原理大致相同,只是改变箭头方向,

    vim还可以跟上+来使用,如

    vim  +  /etc/passwd  打开/etc/passwd文件并将光标停留在最后一行

    也可加行数使用 : vim  +3  /etc/passwd  打开/etc/passwd文件并光标停留在第三行

注意 : \\ vim -o/O 选项这里不要和切换到输入模式下的o,O混淆,尤其初学者由于知识点较多容易造成混乱。

三、在编辑模式下的光标移动

    单字符移动:

            h:左

            l :右

            k:上

            j :下

    移动时可以和数字组合使用,默认为移动一个字符

        比如:3 k  则是向上移动三行,6 l 则是向右移动六个字符

    单词间移动:

        w:移至下一个单词的词首

        b:当前单词或者下一个单词的词首

        e:移至下一个单词的刺猬

    行内移动:

        0:绝对行首

        ^:行首(左侧第一个非空白字符)

        $ :绝对行尾

     句子间移动:

        ):上一句

        (:下一句

      段落间移动:

        }:上一段

        {:下一段

            注:句子间移动与段落间移动应用较少

      行间移动:

            #G:移至第几行

              G:最后一行

      编辑操作:

              x:删除光标所在处的字符

            #x:删除光标所在处向后#个字符

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

                    #r:替换光标所在向后的#个字符,但只能替换相同的字符,所有不是使用频率不是很高

       删除操作:

            dd:删除光标所在行

          #dd:删除光标所在行及其之后的行,共删除#行

            dw:删除光标所在单词的字符及其之后的字符

        复制操作:

            y:yank 复制

            用法和d的方式相同,支持#y

        粘贴操作:

            p:paste 粘贴

            用法:p可以使用的前提是之前的操作必须是删除d操作或者复制y操作,如果是d删除操作,                          则和windows中的剪切类似。

            p的结果取决于删除或者复制的字符,如果是整行:

                p:当前行的下一行(小p)     

                P:当前行的上一行(大p)

             如果不是整行:

                p:粘贴在光标所在字符的后面

                P:粘贴在光标所在字符的前面

         撤销编辑:

                u:undo 撤销上次操作

              #u:撤销上#次操作

              Ctrl+r:撤销此前的撤销操作

                .:重复此前的命令操作,可与dd等命令结合使用

          翻屏操作:

                ctrl+f:向文件尾部翻一屏
                ctrl+b:向文件首部翻一屏
                ctrl+d:向文件尾部翻半屏
                ctrl+u:向文件首部翻半屏
                Enter:下一行

                j  :下一行

                k :上一行

          可视化操作:

                v:按字符为单位进行选定

                V:按行为单位进行选定

                    选定之后有点像word的“先选定,后操作”法则,可以对其进行删除、复制、粘贴等操作

四、末行模式下的应用

          末行模式下的范围定界:

                格式:“ :/part1/,/part2/”

                /part1/,/part2/:可以使用绝对定界,也可以使用相对定界
                   . : 表示当前行
                   $ : 最后一行
                   $-2 : 倒数第3行

                例如:

                  wKioL1YntXyQDfrNAAECGiVoRuo813.jpg

                    代表删除进入末行模式之前光标所在行至末行之间所有的数据(包括范围边界)                      末行模式下的窗口定义:

                  窗口属性的定义:
                    :set nu    显示行号            
                    :set nonu  取消显示行号

                    :set ai     自动缩进
                    :set noai     取消自动缩进

                    :set ic     忽略大小写    //指寻找关键字是是否忽略大小写,马上会介绍到寻找关键字
                    :set noic    识别大小写

                    :set sm    显示对应的括号

                    :set nosm
         
                    :syntax on     语法高亮  开

                    :syntax off                   关
   
                    :set hlsearch    搜索高亮 开     //与搜索关键字有关
                    :set nohlsearch              关

            我们来单独介绍一下查找关键字:

                /keyword
               ?keyword
                   n:如果查找到多个匹配的关键字,n代表下一个
                   N:N代表上一个

                格式如上,在编辑模式下 / 后加 所想要的关键字即可,关键字支持正则表达式        
                  :set nohlsearch 关闭高亮显示,对当前shell有效

五、vim的配置文件

        和大多数的linux软件工具一样,全局配置文件存放在/etc/目录下

            vim的配置文件:
                全局:/etc/vimrc
                个人:~/.vimrc

最后我们来讲一下vim一个非常重要的功能——查找替换功能:

      :地址定界s/查找模式/替换为的内容/gi
      g:全局替换
       i:不区分大小写
      :地址定界s@查找模式@替换为的内容@gi
      &:用于在替换为的内容部分中引用前面匹配到的所有内容

      %:代表全文

      是在末行模式下的进行的,

以下为查找替换的相关例题,请大家参考:

    1、复制/etc/grup.conf至/tmp目录,删除/tmp/grub.conf文件中行首的空白符
         :%s\^[[:space:]]\{1,\}\\g
    2、复制/etc/rc.d/rc.sysinit至/tmp目录。将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行,行首加#号
          :%s@^[[:space:]]\{1,\}.*@#&@g
   3、删除/tmp/rc.sysinit文件中以#开头且后面跟了至少一个空白字符的行的行首的#和空白符
          1,%s@^#[[:space:]]\{1,\}@@g
   4、为/tmp/grub。conf文件中的前三行的行首加#号
          1,3s@^@#@g
   5、将/etc/yum.repos.d/CentOS-Media.repo中enable=0一行最后的0改为1;
           %@\(enabled=\)[0-9]@\11@g


本文有些啰嗦,内容多且有些杂乱,但是我所介绍的也不过是vim编辑器中的一小部分,叫详解有些不恰当,只是将大家可能经常用到的大致讲了一下,如果读者对于某个功能还是很迷惑,可以前往Internet搜索该功能的专题博客。


还是开篇的那句话,如果想用好linux那么Vim编辑器是读者所必需掌握的,如果本文对读者并没有起到什么实际作用,但是能让您意识到了vim编辑器的重要性,笔者的辛苦也是值得的。

时间不早了,连续整理三天写完了这个博客(笔者白天还要上班i_f19.gif),洗簌一下,准备休息啦。


晚安~


本文出自 “Fall Forward” 博客,请务必保留此出处http://nashsun.blog.51cto.com/9377291/1705065

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值