当前位置 博文首页 > 文章内容

    linux vi 编辑文件常用快捷键

    作者: 栏目:未分类 时间:2020-07-15 11:00:37

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    一、 三种模式

    vim有三种编辑模式

    1. i 进入文本编辑模式

    2. esc 进入命令编辑模式 

            命令编辑状态下 dd删除整行

    3. :进入底行模式

    底行模式状态  输入q 退出 w保存  wq 保存并退出  !表示强制的意思  q!强制退出 

    二 、编辑文本常用快捷键

     1、插入命令

        a  在光标后附加文本

        A  在本行行末附件文本

        i  在光标前插入文本

        I  在本行开始插入文本

        o  在光标下插入文本

        O  在光标上插入文本

     2、定位命令

        h或方向左键  左移一个字符

        j或方向下键  下移一行

        k或方向上键  上移一行

        l或方向右键  右移一个字符

        $  移至行尾

        0  移至行首

        H  移至屏幕上端

        M  移至屏幕中央

        L  移至屏幕下端

        :set nu  设置行号

        :set nonu  取消行号

        gg  到第一行

        G  到最后一行

        nG  到第n行

        :n  到第n行

      3、删除命令

        x  删除光标所在的字符

        nx  删除光标所在处后n个字符

        dd  删除光标所在行

        dG  删除光标所在行导末尾的内容

        D  删除从光标所在行到末尾的内容

        :n1,n2d  删除指定范围的行

      4、复制和剪切命令

        yy或者Y  复制当前行

        nyy或者nY  复制当前行一下n行

        dd  剪切当前行

        ndd  剪切当前行以下n行

        p或者P  粘贴在当前光标所在行下或行上

      5、替换和取消命令

        r  取代光标所在处的字符

        R  从光标所在处开始替换字符,按Esc键结束

        u  取消上一步操作

      6、搜索和替换命令

        /string  向前搜索指定命令,搜索时忽略大小写:set ic ,如搜索ftp:  /ftp

        n  搜索指定字符串的下一个出现位置

        :%s/被替换的字符串/替换成的字符创/g  例如把全文的ftp替换成hello  :%s/ftp/hello/g

        :n1,n2s/被替换的字符串/替换成的字符创/g  在一定的范围内替换字符串

      7、保存退出命令

        :wq 或者 ZZ 保存退出

        :q!  不保存退出

        :wq!  强行保存退出 (root或者文件的所有者)

      8、应用实例

        1)在vi中导入文件 :

          :r 文件

          如:导入/test目录下的abc.txt文件  :r /test/abc.txt

        2)在vi中执行命令:

          :!命令

          如:在vi编辑器中查看 /test目录下的文件详细信息  :!ls -l /test

          这样就不需要先退出vi再去执行命令

        3)把命令执行的结果导入到vi中:

          如:把date命令执行的结果导入到vi中

          :r !date

        4)定义快捷键

          :map 快捷键 触发的命令

          如:  :map ^P I#<ESC>  ^表示定义的快捷键,

              注意,在vi中,^这个符号是使用ctrl+v组合输入的符号,^P 在vi中的输入是ctrl+v和ctrl+p,或者ctrl+v+p

              :map ^P I#<ESC>  表示光标无论在行的哪个位置,只要按下ctrl+p就可以在行首插入#号,然后回到命令模式。I表示在行首插入文本,<ESC>表示  回到命令模式。

              :map ^E acodeartisan@gmail.com  定义了一个快捷键ctrl+e,只要按下ctrl+e就可以在光标位置输入我的邮箱acodeartisan@gmail.com,非常方便。

              再比如我们要定义一个快捷键,无论光标在行的哪个位置,只要按下ctrl+b,就可以去掉行首的#注释(实际上就是把行首的第一个字符删掉)

              :map ^B 0x  定义了一个快捷键ctrl+b。0表示移到行首,x表示删除光标所在字符。

        5)连续行注释

          :n1,n2s/^/#/g  在n1行和n2行之间的行首加入#注释

          :n1,n2s/^#//g  把n1行和n2行之间的行首的#注释去掉