7. vim编辑器

vim:

     模式化的编辑器

            基本模式:

                  编辑模式,命令模式

                  输入模式

                  末行模式

                        内置的命令行接口

      打开文件:

            vim [options] [file ..]

            选项:

                  +3 :表示打开文件后直接让光标处于第3行行首

                        [root@myEcs tmp]# vim +3 b.txt 

                  +/PATTERN:打开文件后,直接让光标处于第一个被PATTENR匹配到的行的行首

                        [root@myEcs tmp]# vim +/her b.txt                 //表示将光标放在匹配到的her的行的行首。

                  +:将光标放在文件的最后一行的行首

      模式转换:

            编辑模式:打开文件时默认处在编辑模式

                 编辑模式 --> 输入模式

                    i:insert;在光标所在处输入

                   a:append;在光标所在处的后方输入

                   o:在光标所在处下方打开一个新行

                   I:表示在光标所在行的行首输入

                   A:在光标所在行的行尾输入

                   O:在光标所在处的上方打开一个新行输入

                  输入模式 ---> 编辑模式

                    ESC

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

                    :

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

                     ESC

           关闭文件:

                  在编辑模式下:

                      ZZ:保存并退出

                  在末行模式下:

                      :q 退出

                      :q! 强制退出,不保存。

                      :wq! 保存并退出。

                      :x 保存并退出

                      :w /tmp/a.txt 另存为;将文件内容保存到/tmp/a.txt

             光标的跳转:

                   字符见跳转

                         h:光标向左跳转一个字符

                         l:光标向右跳转一个字符

                         j:向下跳转

                         k:向上跳转

                   单词间跳转

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

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

                         e:光标转跳至前一个单词的词首

                   行首行尾跳转

                         A:光标跳转至行首的第一个非空白字符

                         0:光标跳转至行首

                         $:光标跳转至行尾

                   行间跳转

                         5G:光标跳转至第5行的行首

                         1G;gg:光标表示跳转至第一行行首

                         G:光标跳转至最后一行

                   句间跳转

                         )

         (

                   段间跳转

        }

                        {

 

           翻屏:

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

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

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

                  ctrl + o:向文件首部翻半屏

                  Enter:按行向后翻

          vim的编辑命令:

                   字符编辑:

                         x:删除光标所在处的字符

                         3x:删除光标所在处起始的3个字符

                         xp:交换光标所在处的字符与其后面的字符的位置,位置交换

                   替换命令

                         r:替换光标所在处的字符

                             先点击键盘上的r在点击要替换的字符

                   删除命令

                         d:删除命令,可结合光标跳转字符,实现范围删除

                             d$:删除当前光标所在处到行尾的内容

                         dd:删除一整行

                            3dd:删除三行

                   粘贴命令

                         p:缓冲区中的内容如果为整行,则粘贴当当前光标所在行的下方;否则,则粘贴至当前光标坐在处的后方。

                         P:缓冲区中的内容如果为整行,则粘贴当当前光标所在行的上方;否则,则粘贴至当前光标坐在处的前方。

                   复制命令

                         y:复制,工作行为相似与d命令

                              y$

                              y^

                              y0

                              ye

                              yw

                              yb

                              yy:复制一整行

                                   3yy复制三行

                    改变命令:

                         编辑模式 --> 输入模式,又能实现删除操作

                              c$

            c^

          c0

          cb

          ce

          cw 

                              cc:删除光标所在处的行,并转换成输入模式

          其他编辑操作:  

             可视化模式:

                 v:按照字符选中

                 V:按照行选中

                      结合编辑命令使用:d   c   y  p                      

             撤销操作:

                 u:撤销此前的操作zz

                     4u:撤销此前的四次操作

             撤销此前的撤销操作:

                  ctrl + r

             重复执行前一个编辑操作:

                 . 

       vim末行模式:

                 内建的命令行接口

               (1)地址定界

                       :start_pos[,end_pos]

                             5:特定的#行,例如5即5行。

                             5,6:指定行范围,左侧为起始行,右侧为结束行。

                         5, +1:指定行范围,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量;例如:3, +7

                         . :表示当前行

                             .,$-1:表示从当前行到倒数第二行

                         %:表示全文                     

                          /str:表示从光标所在行的起始向文件尾部第一次被模式匹配到的行。

                                  /first, $

                         /pat1, /pat2/:光标所在处起始,第一次由pat1匹配到的行开始,直至第一次由pat2匹配到的行结之间的所有行

        可同编辑命令一起使用,实现编辑操作:

                            d

                            y

                            c

 

                            w/tmp/test.txt:将范围内文本保存到指定文件中

                            r/tmp/a.txt:将指定的文件中的文本读取并插入到指定位置

            (2)查找

                   /str:从当前光标所在处向文件尾部查找当前模式匹配到的所有字符串

                  ?str:从当前光标所在处向文件首部查找当前模式匹配到的所有字符串

                       n:下一个,与命令方向相同

                      N:与命令方向相反

            (3)查找并替换

                    s:末行模式的命令;使用格式:

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

                         要查找的内容:可使用正则表达式

                         替换为的内容:不能使用正则表达式,但是可引用。

                         修饰符:

                                  i:忽略大小写

                                  g:全局替换,意味着一行中如果匹配多次,则都替换

                     可以把分割符“/”换成其他的符号进行分割

                                 如:s@要查找的内容@ 替换为的内容@修饰符

                                       s##

 

      vim的多文件模式:一次打开多个文件

          多文件

              vim FILE1 FILE2...

                    大文件间切换:

                          :next 下一个

                          :prev 上一个

                          :first  第一个

                          :last  最后一个

                   退出所有文件:

                         :wqall 保存所有文件并退出

                         :wall

                         :qall

           多窗口:

                -o:水平分割窗口

                -O:垂直分割窗口

                在窗口间进行切换:Ctrl+w,ARROW

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

                   Ctrl+w, s:水平分割窗口

                   Ctrl+w, v:垂直分割窗口

           定制vim的工作特性:

                 注意:在末行模式下的设定,仅仅对当前vim进程有效

                 永久有效:

                           全局:/etc/vimrc

                           用户个人:~/.vimrc;可能不存在需要创建

                 1.行号

                     末行模式下:

                           set nu:显示行号

                           set no mu:取消行号

                 2.自动缩进

                    set ai:启用自动缩进。         

                    set noai:取消缩进

                 3.高亮搜索

                    set hisearch:启用

                    set nohisearch:禁用

                 4.语法高亮

                    syntax on:启用

                    syntax off:禁用

                 5.忽略字符大小写

                    set ic:启用

                    set noic 禁用

              获取帮助:

                    :help

                    :help subject

            

 

                      

posted @ 2020-05-08 00:19  附庸风雅  阅读(77)  评论(0)    收藏  举报