码迷,mamicode.com
首页 > 系统相关 > 详细

vim使用总结

时间:2015-09-23 12:00:48      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:编辑器   linux   vim   

一、概述

        vim(vi improved)编辑器是vi的增强版,主要用来查看文件中的行,以及查找、移动、编辑、替换文本。


        vim有三种操作模式:

              命令模式:刚打开文件时,vim编辑器会进入命令模式,此模式下键盘操作会被理解为编辑命令。

              插入模式:这种模式下,vim会将键盘输入的字符都插入到缓冲区。

              末行模式:此模式下可执行查询操作,而读取和输出文本、大量替换字符、显示行号、保存、离开vim也是在此模式中进行。


         三种模式之间的切换

                命令模式→插入模式:

                       i键:在光标所在处的前方转为插入模式

                       I键:在光标所在行的行首转为插入模式

                       a键:在光标所在处的后方转为插入模式

                       A键:在光标所在行的行尾转为插入模式

                       o键:在光标所在行的下方新建一个空行并转换为插入模式

                       O键:在光标所在行的上方新建一个空行并转换为插入模式

                 命令模式→末行模式:

                      【:】键:与内容定界、读取或输出文本及保存、退出vim相关

                        /和?键:与查找相关

                 插入模式和末行模式返回命令模式均按ESC键;插入模式和末行模式之间不能直接切换,需经过命令模式。


             

技术分享



二、vim打开和关闭文件

       1、打开

             vim [option]… [file]…

             vim命令后若不加任何文件名,则直接显示其版本号等信息

       2、关闭

             命令模式下:ZZ 

             末行模式下:   :q(未编辑过文件的情况下,直接退出)    :q!(不保存退出)  :wq(保存并退出)  :x(保存并退出)  :wq!(强制保存并退出)

                    

二、vim常用操作

      1、光标移动  

             在命令模式中,可使用方向键[或h(左)、j(下)、k(上)、l(右)]移动光标。有时一行一行移动会比较麻烦,因此vim还提供了一些命令提高移动速度:

                    单词间移动:

                           w:下一个单词词首   e:当前单词或下一个单词词尾   b:当前单词或上一个单词词首      #{w|e|b}

                    行内移动:

                           ^:行首(第一个非空白字符)  0:绝对行首    $:绝对行尾

                    句子间移动:

                           ):下一个句子句首      (:上一个句子句首

                    段落间移动:

                           },{

                    行间移动:

                           #G:直接跳转至第#行

                           G:跳转至最后一行

                           gg:跳至第一行

                           #{h|j|k|l}:向指定方向跳转#个字符

                           PageUp(或ctrl+f):上翻一屏数据

                           PageDown(或ctrl+b):下翻一屏数据

                           ctrl+d:上翻半屏数据

                           ctrl+u:下翻并屏数据


           2、命令模式中常用的编辑命令                       

                           x,X:x为删除光标所在处的字符,X为删除光标前的一个字符    #{x/X}:x和X命令可结合数字键使用

                        d+光标移动命令:删除跳转范围内的字符或行

                        dd:删除光标所在行    #dd:结合数字键使用,表示删除光标所在行后的#行(包含光标所在行)

                        dw:删除当前字符到单词尾(包含空格)的所有字符

                        de:删除当前字符到单词尾(不包括单词尾部的空格)的所有字符

                        d$:删除当前字符到行尾的所有字符,相当于D

                        d^:删除当前字符到行首的所有字符

                        J:删除当前光标所在行的行尾的换行符(拼接行)

                        c+光标移动命令:修改,先删除光标跳转范围内的文本,再转换为插入模式

                        cc或C:删除光标所在处的整行并进入输入模式

                        r char:用char替换当前光标所在字符

                        R text:用text覆盖当前光标所在数据,直到按下ESC键为止

                        u:撤销前一条命令

                        #u:撤销之前的#次操作

                        ctrl+r:撤销前一次的撤销操作

                        .:重复前一条命令


            3、复制与粘贴

                  p:paste 粘贴

                        vim会将最后一次删除或复制的数据保存在一个单独的寄存器中,可用p或P命令取回

                              字符级别粘贴:使用p(P)命令会将字符插入到光标所在字符之后(前)

                              行级别粘贴:使用p(P)命令会将行插入到光标所在行之后(前)   

                  y:yank 复制

                       可以与y使用与d相同的第二字符(如yw表示复制单词,y$复制到行尾),复制文本后,再使用p(P)命令粘贴

                       

             4、末行模式中的相关操作

                  命令模式中按【:】键进入末行模式,输入:

                         #:跳转到第#行     $:跳转到末行

                  内容定界:格式为startposendpos   例如10,$-1

                         #:第#行     .:当前行     $:末行    %:全文,相当于1,$

                         内容定界后:

                                1)w /path/to/somefile:将选定范围内的内容保存至某文件中

                                2)r /path/to/somefile:将指定文件中的内容读取到当前文件中的指定位置

                                3)可结合c,d,y等命令使用,实现区域文本编辑                         

                   查找

                          格式:/pattern(从光标所在处向后查找)   ?pattern(从光标所在处向前查找)

                          要继续查找同一文本,按n键(下一个)或N键(上一个)

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

                    替换

                           替换命令的格式是:

                                  :s/查找模式/要替换成的新内容/gi

                                  g:global,表示全文替换

                                  i:ignore,忽略字符大小写

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

                           例1,替换/tem/functions文件中的/etc/sysconfig/init为/var/log

                                    %s/ \ /etc\ /sysconfig\ /init/ \ /var\ /log/gi    (注:因避免要替换的内容中的/与分隔符相混淆,需要用\进行转义;另外,分隔符可自定义,不会混淆则不用转义,因此也可写成%s@/etc/sysconfig/init@/var/log/gi)

                           例2,复制/etc/rc.d/rc.sysinit至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#号

                                    %s@^\([[:space:]]\{1,\}.*\)@#\1@g或者%s@^[[:space:]]\{1,\}.*@#&@g   (引用模式匹配到的所有内容,可使用&符号)


三、vim的可视化模式

       有时执行复制操作时,没法看清到底复制了什么,而可视模式会在移动光标时高亮显示文本。在复制的起始位置按下v(V)键进入可视模式,然后移动光标覆盖需要复制的文本,光标移动过程中,vim会高亮显示复制区域的文本,覆盖完需要复制的内容之后,按y键激活复制命令。(注:v键为字符选择;V键为行选择


四、vim窗口属性定义       

             :set nu(显示行号)   :set nonu(取消显示行号)  

             :set ai(自动缩进)     :set noai       

             :set ic(忽略字符大小写)       :set noic      

             :set sm (显示匹配的扩号的另外半边)  

             :syntax off(关闭语法高亮   :syntax on    

             :set nohlsearch(关闭搜索高亮)

        默认只对当前进程有效,若需持久有效,应修改vim的配置文件


五、vim的多文件模式

       vim可同时编辑多个文件,直接将文件名列于vim命令后即可,如vim /etc/inittab /etc/passwd

       多文件模式中文件之前的切换:

              :next(或:n)    :previous(或:N)    :last    :first    :files(列出此vim目前开启的所有文件)   :wqall(全部保存并退出)


六、vim的多窗口模式

       1、多窗口单文件模式

                   打开文件后,按ctrl+w,再按s(v)为水平(垂直)分割 的多个窗口,并且可以对子窗口以同样的方式再次执行分割            

       2、多窗口多文件模式

                   vim  -o :水平分割      vim  -O:垂直分割

       3、补充:在一个窗口中,可使用:sp [filename]水平开启一个新窗口,如果有加filename,表示在新窗口开启一个新文件,否则表示两个窗口为同一文件内容。

       4、窗口之间的切换

                   先按ctrl+w,再按方向键

技术分享



七、vim的配置文件

       全局级:/etc/vimrc

       用户级:~/.vimrc(若不存在,可手动创建)                


vim使用总结

标签:编辑器   linux   vim   

原文地址:http://9124573.blog.51cto.com/9114573/1697343

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!