Vim编辑器详解

    xiaoxiao2023-03-24  5

    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功能键,进入该模式后屏幕最下方左侧会出现:,你可以在:后进行相应的文本操作。在该模式下,你可以编辑、查找任意你想要的文本。

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

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

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

        末行模式——>编辑模式    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

        打开显示为:

        /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行

                    例如:

                     

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

                      窗口属性的定义:                    :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编辑器的重要性,笔者的辛苦也是值得的。

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

    晚安~

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

    转载请注明原文地址: https://ju.6miu.com/read-1202835.html
    最新回复(0)