文件编辑器类别:

    1)全屏文本编辑器:

            nano

            vi,vim

            emacs

    2)行文本编辑器:

          sed

vi--->vim

模式化的编辑器:多种不同模式

   编辑模式(命令模式)

   输入模式

   末行模式:vim有许多内置命令,此模式即为其命令的接口

1、打开VIM

  vim

       vim [OPTIONS] [FILE]...

               +#: 快速定位至第#行

                +:快速定位至最后一行

        +/PATTERN: 快速定位至被模式第一次匹配的行

2、模式间转换

   默认为编辑模式--->输入模式:

      i:insert,在当前光标处,转换为输入模式

      I:在当前光标所在行行首,转换为输入模式

      a:append,在当前光标所在出字符后方,转为为输入模式

      A:在当前光标所在行行尾,转换为输入模式

      o:在当前光标所在行的下方新建一个空白行,并转换为输入模式

      O:在当前光标所在行的上方新建一个空白行,并转换为输入模式

  输入模式--->编辑模式:按ESC键

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

  末行模式--->编辑模式:按ESC键

  (注:输入模式无法直接切换至末行模式)


3、退出vim

   末行模式:

               q  退出

               w  另存为    w /tmp/test

               q! 强制退出,不保存编辑的内容直接退出

               wq 保存退出

                x 保存退出

          wq!,x! 强制保存退出

   编辑模式(命令模式):

              ZZ:保存退出


4、编辑命令

 ①、光标移动:

    字符间移动:h,j,k,l    左,下,上,右  #[h,j,k,l]:一次移动N个字符间距

    单词间移动:w 下一个单词的词首

            e 当前或下一个单词的词尾

            b 当前或前一个单词的词首    #[w,e,b]

    行首行尾间跳转:

            0:跳转至绝对行首

            ^: 行首的第一个非空白字符

            $: 跳转绝对行尾

   行间快速跳转:#G 第#行  末行模式:# 跳转至第#行

             G 文尾

            gg 文首

  句间移动:

             )

     (

        段落间移动:

     }

             {

②、编辑操作:

        x:删除光标所在出字符   #x: 删除光标所在处及向后的公#个字符

        d:删除命令 

       dd:删除光标所在行  相当于D

      #dd:删除光标所在行及下的共#行

 与跳转命令一同使用:

       d$:删除光标所在处至行尾的内容

       d0,d^

       dw,db,de

   r:替换命令   R

   p:粘贴,

     行级别:

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

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

    小于行级别:

         p:粘贴在光标所在出的后方

         P:粘贴在光标所在出的前方

    y:复制命令

   yy:删除光标所在行 相当于Y

   #yy:删除光标所在行及下的共#行

    与跳转命令一同使用:

         y$:删除光标所在处至行尾的内容

         y0,y^

         yw,yb,ye

     

   c:修改    删除后进入输入模式

      C cc c$ c^ c0

     

   u:撤销   #u 一次撤销最近的#次操作

   ctrl+r    撤销此前的撤销

   . 重复前一条命令 


附:

VimTutor中文版


5、可试化模式

    v:选择光标所在行的光标左侧的内容

    V:光标所在行整行都被选定

6、编辑模式下的翻屏命令

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

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

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

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


末行模式:


7、文本查找   

        支持正则表达式

        /PATTERN  向尾部进行 n,N

        ?PATTERN  向首部进行 n,N

8、文本替换

       有部分内置命令用于编辑操作,此时可使用地址定界法进行

       地址定界:startline[,endline]

                        #:第#行

                        .:当前行

                        $:最后一行

                        %:全文

       相对定界:

                         +#:从指定位置向下#个行  10,+5

                         -#:从指定位置向上#个行  10,-5

              文本替换:“s”

                        s/要查找的内容/替换为的内容/修饰符

                         /:用作分隔符,用于分割“要查找的内容”和“替换为的内容”此分隔符可使用其他符号如:@,#。

                         要查找的内容,可使用正则表达式,可以在后面“替换为的内容”部分使用“&”全部引用

                         替换为的内容,不可使用正则表达式,一般为正常文本但可以使用正则表达式中\1,\2...保存的内容

                         修饰符:

                                i:查找时不区分字符大小写

                                g:全局替换


9、多文件模式

     打开文件:vim [OPTIN]...[FILE]...

        

      多文件:

           末行模式:

                    next,prev,first,last

           保存并退出所有文件:

                    wqall,,wall,qall

      多窗口:

           -o:上下分割窗口

            -O:左右分割窗口

      Ctrl+w,ARROW

      注意:单个文件也可以分割为多个窗口进行查看

       Ctrl+w,放开再按s  上下分割

       Ctrl+w,v         左右分割

10、界面显示特性

        末行模式:

             显示行号:默认没开启

                  set number,set nu

                  set nonumber,set nonu

             语法高亮:

                  syntax on

                  syntax off

             搜索高亮

                  set hlsearch

                  set nohlsearch

             自动缩进:默认没开启

                  set autoindent,set ai

                  set noauntoindent,set noai

             区分字符大小写的开启和关闭

                  set ignorecase,set ic

                  set noignorecase,set noic

             高亮显示匹配的符号对儿:默认开启

                  set showmatch,set sm

                  set noshowmatch,set nosm

             忽略字符大小写

                  set ic

                  set noic

11、vim的配置文件

    全局:/etc/vimrc

    个人:~/.vimrc

12、在vi中执行命令和导入文件

      在末行模式下:  

          导入文件:  r FILENAME

          执行命令:  !COMMAND

          导入执行命令的结果:   r!COMMAND

13、定义快捷键和替换

   在末行模式下:

        替换:ab mymail magedu@qq.com   #文中后面所写的所有mymail将被替换为mageedu@qq.com

        快捷键: map CRTL+p  I#<ESC>    #按Ctrl+p键就会在光标所在行行首插入#并返回编辑模式