vim/vi是unix/linux下极为普遍的一种文本编辑器, 大部分机器上都有 vi , 在不同的机器上常用不同的变种软件 其中 vim 比较好用也用得比较广泛 vim 是 Vi IMproved 的缩写, 表示更好的 vi 本文就说些其中比较有用, 比较常用的命令, 若能熟练运用这些命令, 那么会发现编辑文件很大帮助,尤其是做开发的人员,能快速的提高开发效率。

 全屏文本编辑器:

   vi:Visual Interface

   vim:VI iMproved

 它是一种模式化编辑器:有很多工作模式,主要用到其三:

    1.编辑模式(命令模式)--> 默认的工作模式

    2.末行模式

    3.插入模式(输入模式)

    (另外还有替换模式、可视化模式)

下面介绍一下vim的基本操作:

   一、打开(文件)方式:

     1.vi/vim:直接打开界面,如图

       wKiom1jKO63ShfWsAAByqc-e-so499.png-wh_50

     2.vim FILE: FILE存在时,打开并将光标默认放置在第一行第一个字符;FLIE不存在,则以新        文件的方式打开,若保存,文件被创建,不保存文件消失;

     3.vim  +#  FILE 打开文件的时候光标在第#行;

     4.vim + FILE :光标定位在最后一行;

     5.vim +/PATTERN/:打开文件,将光标定位在首次被PATTERN匹配的行的行首位置;即只完成首       次匹配。

    二、关闭方式:

      末行模式的关闭:

       :q 直接关闭不保存改变的内容;

       :wq 保存并退出;

       :w 保存修改的内容

       :q! 强制退出

       :wq! 对于root来说,一些只读文件的修改可以强制保存退出;

      编辑模式的关闭;

        ZZ:保存并退出;

        ZQ:不保存退出;

    三、在vim编辑模式中,移动光标;

      1.逐字符移动:

            1).ARROW

            2).hjkl:左下上右

      2.逐字移动:

            w:移动到下一个字的字首;

            e:移动到字尾

            b:移动到上一个字的字首;

      3.行内跳转;

            0:绝对行首;

            ^:相对行首;

            $:绝对行尾;

      4.行间跳转:

            #G:直接移动至第#行;

            G:直接移动至文档的最后一行;

            gg:第一行第一个字符;

     末行模式光标的移动

          :#直接移动至第#行

          :$最后一行

    四、翻页/翻屏:

          Ctrl+f:向下翻一屏

          Ctrl+b:上翻一屏

          Ctrl+d:下半屏

          Ctrl+u:上半屏

    五、逐字符删除:

          x:删除光标所在位置的字符;

          X:删除光标所在位置左侧的单个字符;

    六、编辑模式中的万能删除命令;

          d:删除光标经过的所有内容;例如dG:删除了所在行到最后一行的所有内容;

          dd:删除光标所在行,前可以加#,表示删除共#行;

          末行模式下:

            :d

            :#d

            :m,nd(从第m到第n行删除)

            :.,$(当前行.到末尾行$删除)

            :m,+nd(从m开始再删除n行)


    七、编辑模式中的粘贴命令;

         p:向右向下进行粘贴;

         P:向左向上进行粘贴;

    八、编辑模式中的复制命令:

         y:类似d;复制光标所经过的所有内容;

    九、模式的切换;

      1.编辑模式到末行模式:

            :输入命令

            /和 ?:进行查找,n和N,顺序和逆序查找;

              /:自上而下

              ?:自下而上

      2.末行模式到编辑模式:

           ESC键

           Enter键

           Backspace键

      3.编辑模式到输入模式:

         I:Insert 至行首并进入输入模式;

         i:insert 光标所在位置前面插入信息;

         A:apend;光标移动至行尾并进入输入模式;

         a:在光标所在位置的后面插入字符;

         O:Otherline光标所在行的上面插入新行

         o:         下面插入新行;

         cc:删除整行内容之后进入输入模式;

         C: 从光标所在位置删除至行尾进入输入模式;

         s:删除光标后的一个字符,进入输入模式;

         S:删除整行进入输入模式;

      4.输入模式到编辑模式:

         ESC键

      5.编辑模式到替换模式:

         R:进入

      6.替换模式到编辑模式:

         ESC键

      7.编辑模式到可视化模式;

        v:按照字符为单位进行矩形选取;

        V:按照行为单位进行矩形选取;

        选取后可执行复制删除操作;

        完成操作后返回到编辑模式;

      注意:所有模式切换必须经由编辑模式,两种非编辑模式之间无法直接切换;

    十、替换命令;

       r:替换光标所在位置的一个字符;

    十一、 撤销编辑操作

       u:撤销一次此前的编辑操作

       Ctrl+r:撤销最近的一次撤销操作

    十二、重复之前的一次编辑操作;

       .

    十三、特殊的末行命令:

      1.显示和取消行编号:

          :set number-->set nu

          :set nonumber-->set nonu

      2.开启或者关闭字符大小写的区分;

         :set ignorecase-->set ic

         :set noignorecase-->set noic

      3.开启或关闭自动缩进功能:

         :set autoindent--set ai

         :set noautoindent--set noai

      4.开启或关闭查找高亮显示:

         :set hlsearch 无简写

         :set nohlsearch--nohl

      5.开启和关闭语法着色:

         :syntax off

         :syntax on

    十四、内容替换

       查找替换

         /pattern     向后搜索字符串pattern

         ?pattern     向前搜索字符串pattern

         n    下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)

         N    上一个匹配(同上)

         :%s/old/new/g   搜索整个文件,将所有的old替换为new

         :%s/old/new/gc  搜索整个文件,将所有的old替换为new,每次都要你确认是否替换

   

    十六:使用vim编辑多个文件:

      1.直接打开:vim FILE1 FILE2 FILE3 ...

        :next 查看编辑后一个文档的内容

        :prev 查看编辑前一个文档

        :first 查看编辑第一个文档

        :last 查看编辑最后一个文档

      2.vim -o|-O FILE1 FILE2 ...

         选项:

           -o:水平

           -O:垂直          

        光标在窗口间的切换: Ctrl+w,ARROW;#Ctrl+w,Arrow

          Ctrl+w,s:水平分屏显示;

          Ctrl+w,v:垂直分屏显示;


         :wa 保存all

         :qa 退出all

    

    十七:将其他文件的内容填充至当前文件中

      末行模式下  :r /PATH/TO/SOMEFILE

    

    十八:与shell交互

     :! COMMAND 


    十九:部分另存为

      :w /PATH/TO/SOMEFILE  全部另存为;


      :m,nw /PATH/TO/SOMEFILE 从m到n行另存为;

      

      :.,$w /PATH/TO/SOMEFILE 光标所在行到末尾另存为;

 

  vim还有很多命令,这些命令都可以通过“vimtutor”这一命令获得帮助文档,来帮助学习;