vim使用方法

vim是vi的增强版本,具有比vimi更加强大的功能,对于尤其适合编写脚本,下面总结一下vim的常用方法。

vim三种工作模式。

        1. 编辑模式:

            以vim打开文件就直接进入此模式,可以在此模式中删除、复制、粘贴等操作。

            vim使用方法

            vim使用方法

                如上图所示,使用vim打开/etc/inittab文件,直接进入编辑模式。

        2. 输入模式:

            在此模式下进行文件内容的输入和编辑。

            vim使用方法

                看到“INSERT”即进入了输入模式

        3. 末行模式:

            可以提供查找数据、替换字符、设置vim环境、保存文件等功能。

            vim使用方法

                看到“:”即进入了末行模式。

打开文件:    

    vim [option]…[FILE]   

        当指定的文件存在则打开文件,如果不存在则可以保存为新的文件。

    编辑模式 –> 输入模式

        当使用vim打开文件时默认进入的是编辑模式,如果想要切换到输入模式,可以使用以上方法

            i:在光标所在处切换为输入模式。

            I:光标移至行首切换为输入模式。

            a:在光标所在处的后方切换为输入模式。

            A:光标移至行尾切换为输入模式。

            o:在光标所在处的下方新建一个空行并切换为输入模式。

            O:在光标所在处的上方新建一个空行并切换为输入模式。

    输入模式 –> 编辑模式

        按 ESC 键即可由输入模式回到编辑模式

    编辑模式 –> 末行模式

        直接输入“:”即可进入末行模式

    末行模式 –> 编辑模式

        按 ESC 键可以回到编辑模式

    注:从输入模式不能直接进入末行模式,必须经由编辑模式方可切换,输入模式 –> 编辑模式 –> 末行模式 

    vim +# file:打开文件时光标直接处于第#行行首。

              

 退出文件:

     末行模式下

        不保存强制退出

            vim使用方法

        保存退出

            两种方法效果相同

            vim使用方法

            vim使用方法

        强制保存

            vim使用方法

        强制保存退出

            vim使用方法

    编辑模式下

            输入ZZ也可以保存退出。

编辑模式

    光标移动

        字符间移动

            h或左箭头:光标向左移动一个字符

            j或下箭头:光标向下移动一个字符

            k或上箭头:光标向上移动一个字符    

            l或右箭头:光标向右移动一个字符

            一次移动多个字符    #{h|j|k|l}

                eg:输出3j即可向下移动3行

        单词间跳转:

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

            b:光标移至当前单词或前一个单词的词首

            e:光标移至当前单词或下一个单词的词尾

            一次移动多个单词    #{w|b|e}

        行内移动:

            ^:光标移至行首(第一个非空字符)

            0:光标移至行首(绝对行首)

            $:光标移至行尾(绝对行尾)

        句子间移动:

            ):下一句的句首

            (:上一句的句首

        段落间移动:

            }:下一段

            {:上一段

        行间移动:

            G:最后一行

            #G:直接跳转至第#行

            gg:直接跳转至首行

            #[Enter]:光标向下移动#行

        翻屏操作:

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

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

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

            Ctrl+u:向文件乎部翻半屏

    编辑命令

        删除操作:

            x:删除光标所在处的字符(相当于[Del]键)

            X:删除光标前面的一个字符(相当于[Backspace]键)

            #x:删除后面的#个字符

            d:删除命令

                结合光标跳转字符使用,删除跳转范围内的字符

                    #d+光标跳转符(w,b,e,$,0,^)

            dd:删除光标所在行

            dG:删除从光标所在到最后一行的所有数据

            d1G:删除光标所在到第一行的所有数据

            D:删除从光标所在处至行尾的内容,与d$相同

            注意:最后一次删除的内容会被保存到缓冲区

        复制操作:

            y:复制命令

                结合光标跳转字符使用,复制跳转范围内的字符

                    #y+光标跳转符(w,b,e,$,0,^)

            yy:复制光标所在的那一行

            #yy:复制光标所在的向下n行

            y1G:复制光标所在行到第一行的所有数据

            yG:复制光标所在行到最后一行的所有数据

            Y:复制光标所在处至行尾的内容,与y$相同        

        粘贴操作        

            粘贴的位置取决于最后一次删除、复制操作的内容,如果删除或复制的操作为行则:

                p:粘贴至光标所在行的下方

                P:粘贴至光标所在行的上方

            如果删除或复制操作为字符或单词则:

                p:粘贴于当前光标所在处后方

                P:粘贴于当前光标所在处前方

        修改操作

            修改操作可以在进行删除操作后直接切换为输入模式

            c:删除命令

                结合光标跳转字符使用,删除跳转范围内的字符

                    #c+光标跳转符(w,b,e,$,0,^)

            cc:删除光标所在行并切换至输入模式

            cG:删除从光标所在到最后一行的所有数据并切换至输入模式

            c1G:删除光标所在到第一行的所有数据并切换至输入模式

            C:删除从光标所在处至行尾的内容并切换到输入模式,与c$相同

        撤消编辑

            u:撤消最近一次的操作

            #u:撤消最近的#次操作,最多可撤消50次的内容

        撤消此前的撤消操作

            Ctrl+r

        重复前一条命令

            .

    查找与替换

        /pattern:向下查找与pattern匹配的字符串

        ?pattern:向上查找与pattern匹配的字符串

            n:重复前一个查找的操作。如果使用/进行查找,则n表示向下查找,如果使用?进行查找,则n表示向上查找

            N:与n相反,表示与前一个查找进行反向操作

末行模式

    行间跳转

        :#[Enter]:光标直接跳转至第#行

            $:可跳转至最后一行

    内容定界

        指定起始位置和结束位置来定义内容的范围

            eg: :20 +3 表示从20行开始的4行

            #:第#行

            .:当前行

            $:最后一行

            %:全文,相当于1,$

                :10,$-1    表示从第10行到倒数第2行

            c,d,y等命令可直接附加在指定的范围后使用

                :10,$-1 d:表示删除从第10行到倒数第2行的内容

            w:将指定范围的内容另存至其它文件

                :.$w /root/test:将从当前行至最后一行的内容另存为/root/test

                如不指定范围,直接使用w命令,则可将整个文件另存为一个新的文件

            r:在指定位置读入其它文件的内容

                :.r /root/test:在当前位置读入/root/test文件内容

        查找与替换

            s/查找模式/要替换成的内容/gic

                查找模式:可以使用正则表达式

                要替换成的内容:不能使用模式,仅能使用引用

                    引用模式匹配到的所有内容可以使用&符号来替代\1等字符

                g:global,全行替换

                    如果不使用g,查找的字符所在行中存在不止一个匹配项时,只替换第一个

                i:不区分字符大小写

                    :%s/\<file\>/FILE/gi:只替换file单词,忽略包含在单词中的file字符,且不区分大小写

                c:替换前提示用户确认是否替换,常与g同时使用

    

可视化模式:

    用于选取整块范围的模式

    在编辑模式下输入以下命令:

        v:光标走过的字符都被选中

        V:光标走过的行都被选中

        Ctrl+v:以长方形的方式进行选择

            vim使用方法

            以上图为例,将光标移到Default的词首,按下Ctrl+v键,可以看到模式切换为块选择,此时选中Default单词并向下移动光标,与Default字符相对齐的字符都被选中。

        y:将选中的数据复制

        d:将选中的数据删除

多文件模式

    可以同时打开多个文件,并在各个文件中进行切换

    vim file1,file2……

    :file:列出目前这个vim打开的所有文件

    :n:下一个文件

    :N:上一个文件

    :next:与:n相同

    :previous:与:N相同

    :last:最后一个文件

    :first:第一个文件

    :wqa:保存并退出所有文件

    :wqall:与:wqa相同

多窗口模式

    多文件操作

        vim [option] file1,file2 ……

              [option]:

                    -o:水平分割多个文件

                    -O:垂直分割多个文件

            在已打开的文件中再次的打开一个文件并且以水平分割的方式放置: :sp [filename]

                vim使用方法

                文件默认以水平分割的方式打开

                vim使用方法

            在多个窗口中进行切换:    Ctrl+w,方向键

            

    单文件操作

        Ctrl+w,s:水平分割单个文件

        Ctrl+w,v:垂直分割单个文件

            vim使用方法

            首先以将文件水平分割成上面两个窗口,再把上面的窗口以垂直方式分割成两个窗口

        :sp:水平分割单个文件

            vim使用方法

窗口属性定义

    以下操作均在末行模式下进行:

        :set nu:显示行号

        :set nonu:取消显示行号

            vim使用方法

        

        :set ai:自动缩进

        :set noai:取消自动缩进     

            设置了自动缩进后,换行时光标会自动对齐上面行的行首位置,而不会回到绝对行首

        

        :set  ic:忽略字符大小写

        :set noic:取消忽略字符大小写

            设置此项后在查找字符时会忽略大小,默认关闭

        

        :set sm:显示与之匹配的括号的另外半边

        :set nosm:取消显示与之匹配的辞呈的另外半边

            vim使用方法

                上图中将光标移至左中括号时,自动高亮显示与之匹配的右中括号

 

        :set hlsearch:开启搜索高亮显示

        :set nohlsearch:关闭搜索高亮显示

            vim使用方法

                上图中搜索f,会自动高亮标识所有的f,此选项会默认开启,并且即使关闭了当前文件,再次打开其它文件时也会高亮标识之前的搜索结果。

 

        :set syntax= [on|off]:语法高亮显示控制

                vim使用方法

                    上图中带颜色的字符即为开启语法高亮显示的结果,可以帮忙用户标识语法结构,查找语法错误,如果关闭此功能则如下图所示

                vim使用方法

            

        :set all:显示目前所有环境参数设置值

        :set:显示与系统默认值不同的设置参数,一般就是用户改动过的设置

配置文件

    可将属性命令写在配置文件中设置vim默认属性,注释使用双引号。

        全局配置文件:/etc/vimrc

        用户配置文件:~/vimrc

 

            

            

          

                

 

         

       

             

        

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

(0)
petmasterpetmaster
上一篇 2015-03-18 10:21
下一篇 2015-03-18 18:52

相关推荐

  • linux 软件包管理

    1、Linux软件包管理 Redhat, SUSE: RPM Redhat Package Manager PRM is Package Manager 前端工具:yum, apt-get 后端工具:RPM, dpt   2、rpm: 数据库:/var/lib/rpm  rpm包: 软件包作者下载源程序,编译配置完成后,制作成rpm包 格…

    Linux干货 2017-08-06
  • ipvsadm用法

    ipvsadm命令的用法:      1.用于管理Lvs集群服务      2.用于进行RS的增删改      3.查看配置  lvs服务器架设步骤:  1.判断内核是否支持ipvs(看到CONFIG_NETFIFLER_XT_MATCH_IPVS=…

    Linux干货 2017-01-10
  • N25_第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@aio ~]# who|cut -d" " -f1|uniq root 2、取出最后登录到当前系统的用户的相关信息。 [root@aio ~]# who| …

    Linux干货 2016-12-19
  • quota AND raid

    1.磁盘配额 将home目录独立出来单独的分区,限制用户的使用。 (1)先创建分区,如下图的分区sda6 (2)命令同步系统的新增加分区:partx –a /dev/sda (3)命令格式化新分区:     (4)把创建的设备挂载到/mnt/home下    (5)迁移数据,移动之前要确保home分区没有使用。权限是保…

    Linux干货 2016-09-19
  • Iptables基础

       Firewall:防火墙,工作于主机或网络的边缘处,对于进出本主机或网络的报文根据事先定义好的检查规则左匹配检测,对于能够被规则所匹配到的报文进行相应的处理的组件。   防火墙可分为:硬件防火墙,在硬件级别实现部分功能的防火墙;软件防火墙,应用软件处理逻辑运行于通用硬件平台之上的防火墙;主机防火墙,服务范围为当前主机;网络…

    2017-06-19
  • linux系统上的特殊权限SUID,SGID,STICKY

    特殊权限:SUID SGID STICKY     linux的安全上下文:     1.进程以用户的身份运行,进程是发起此用户的代理,因此以此用户的身份和权限完成所有的操作。     2.权限匹配模型:     1)判断进程的属主,是否以被访问的文件属主。如果是,则应用属主权限…

    Linux干货 2016-08-05

评论列表(1条)

  • Linux_love
    Linux_love 2015-03-28 17:46

    mark