vim 编辑技巧

天涯浪子 提交于 2020-02-24 02:04:45

 

         vi是linux下最常用的编辑器,vim是vi的加强版,本篇将介绍vim的一些快捷键和使用技巧,借鉴网上其他文章表示🙏

 

   四种模式   

  
     可视模式(visual-mode)         v   V进入  可视模式相当于高亮选取文本后的普通模式。

     正常模式(normal-mode)      Esc返回正常模式

   命令模式(command-mode)     : 进入命令模式   

    插入模式(insert-mode)  

                  i    在光标所在字符前开始输入

                  a   在光标所在字符后开始输入

                  o   (字母o) 在光标所在行的下面新行来输入

        s   删除光标所在的字符并进入插入模式

                  I   在行首开始输入

                 A 在行尾开始输入

                 O  在光标所在行的上面单独开一新行来输入

                 S   删除光标所在行输入

 

    移动光标

         单词  w    移动光标到下一个单词开头     e   移动光标到下一个单词结尾          b  移动光标到上一个单词

         行     0    移动光标到本行最开头           ^    移动光标到本行最开头的字符处    $  移动光标到本行结尾处       A  移动光标至行尾并直接编辑

         屏      H   移动光标到屏幕的首行           M   移动光标到屏幕的中间一行           L  移动光标到屏幕的尾行

        文档   gg  移动光标到文档首行              G   移动光标到文档尾行                    :n 或者nG  跳至第n行         n    向下移动n行

                 

           {               转到上一个空行            }               转到下一个空行

            5fx             查找光标后第 5 个 x 字符.

            5w(e)          移动光标到下五个单词的头部(尾部).

    翻页 

       ctrl + f        向下翻页 同 page down.

   ctrl + b        向上翻页 同 page up.

   ctrl + d        向下翻半页 此比较有用

   ctrl + u        向上翻半页 此比较有用

   ctrl + e        向下翻一行

   ctrl + y        向上一行

 

   查找

         /string(?string)      向下向上查找    n(N)向下向上查找下一个       :set ignorecase   忽略大小写

         *(#)                     查找光标处单词

         g*(g#)                 匹配包含该单词的所有字符串

         gd              查找光标处单词,光标移动到第一个查找结果

         %               查找匹配的反括号, 包括 () [] { }

         f(F)x           查找光标所在行右(左)方第一个x字符      ; 表示继续往下找      , 表示反方向查找

 

  替换

     :s/aa/bb/g          光标所在行 aa 的替换为 bb

     :s/\<aa\>/bb/g   光标所在行出现的所有aa单词替换为 bb

     :%s/aa/bb/g      文档 aa替换为 bb

     :2,23s/aa/bb/g   2-23行中aa替换为 bb

     :2,23s/^/#/        2-23行的行首加入 # 字符

        

   

       u 撤销       ctrl+r反向撤销        ctrl+o后退        ctrl+i 前进

 

 

  拷贝, 删除与粘贴

       vi 中 y 表示拷贝, d 表示删除, p 表示粘贴. 

                  单词

                         yw              拷贝光标到光标所在单词结尾

         dw              删除光标到光标所在单词结尾

         daw            删除光标所在的单词

                  行

        y0              拷贝光标到光标所在行首

        d0              删除光标到光标所在行首

          y$              拷贝光标到光标所在行尾

                        d$              删除 光标到光标所在行尾

           yy    拷贝光标所在行     5yy 拷贝光标以下 5 行.

           dd   删除光标所在行       5dd 删除光标以下 5 行.

           D    删除光标到光标所在行尾

           ddp  光标所在行与下一行交换

           J     光标所在行与下一行合并

           :10,24y(d)      拷贝(删除)第10行到第24行

     :10,y(d)         拷贝(删除)第10行到光标所在行

     :,24y(d)         拷贝(删除)光标所在行到第24行

  编辑快捷键

        编辑模式下

           ctrl+p(ctrl + n)    向上(下)搜索开头与其匹配的单词并补齐 

           ctrl + x + l          整行补齐, 仅在本窗口中出现的文档中进行匹配.

           ctrl + x + f       在编辑模式中, 这个命令表示补齐文件名. 如输入:

                         /usr/local/va 后再输入此命令则它会自动匹配出:

                         /usr/local/var/

 

           abbr      缩写,用一个缩写代替另一个字符串.

                     比如编写java文件的常常输入 System.out.println, 可以设置缩写   :abbr sprt System.out.println, 在进入编辑模式输入sprt就会自动扩展为System.out.println

      多文件编辑

       vi file1 file2 file3 ...    一个 vim 程序中可以打开很多文件进行编辑

        :n就可以进入下一个文件的编辑,

        :N就进入上一个文件进行编辑

         :e 文件名   指定编辑一个文件则用

            :ls  或者 :files 由vi列出文件名

                     会显示出如下数据:

                       1   %a      "vim.html"         行 102

                       2   #       "test.html"         行 0

    TAB   制表符

      <<       左移 tab

      >>       右移 tab

              5>>     右移5个 tab

              :12,24>            12-14行右移 tab

              :12,24>>          12-14行右移2个 tab

 

文件跳转与tags

  文件跳转要使用tags文件,生成方式为 ctags -R *, ctags为外部命令。

    使用方法:

      (1)把光标移到变量名或函数上,按

         ctrl+ ] 跳转到变量或函数定义的地方,按

         ctrl+ t 返回到原文件

         可以多次跳转和多次返回

      (2)在vi中:ta[:tag]可以直接跳转到变量或函数定义的地方

      (3)vi -t 变量或函数名,直接打开变量或函数定义的文件      

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!