zoukankan      html  css  js  c++  java
  • VIM 奇技淫巧

    VIM 奇技淫巧_八月初十_百度空间

    VIM 奇技淫巧

    常用技巧

    1. 如果想不退出vi而查看UNIX系统的有关信息,输入“:shell ”即可进入vi以前的shell环境,“exit”退回到vi编辑状态。


    2. shift+ZZ 保存后自动退 和 :wq 是一样的


    3. 直接运行命令,不退出VI :! 命令  Demo::! ls


    4. 将其他文件内容导入当前编辑文件中,:r 文件名 Demo::r /etc/hosts
       结合第3条可以这样插入日期  Demo::r !date


    5. 像UltraEdit一样的列选功能,在VI也能用,按Ctrl + V,用向下或向上键选择行,再按Shift+I,然后输入要输入的符号,最后ESC。(Gvim下用Ctrl+Q,不然变成黏贴了)
       我们常用这个方式加注释,还有更简单的方法 :起始行,终止行s/要替换字符/替换为新字符/g Demo::1,20s/^/#/g


    6. 重复上次操作,有的时候我们经常做重复操作,先在第一行上操作例如删除第一个字母,然后到你要重复的行,然后 . (就是有>号的键)


    7. 如果想把一个字母进行大小写变换,可以在字母上按SHIFT+~.

    8. :global可以简写为:g :g! :vg
        :g/^/m 0 #倒序文件行
        :g/^$/d #vi中删除空行
        :g/^/+1 d #删除偶数行 也可以用normal命令 :%norm jdd
        :g/^/d|m. #删除奇数行


    屏幕翻滚类命令


    Ctrl+u:向文件首翻半屏
    Ctrl+d:向文件尾翻半屏
    Ctrl+f:向文件尾翻一屏
    Ctrl+b;向文件首翻一屏
    nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部(这里要敲回车)


    插入文本类命令


    i:在光标前
    I:在当前行首
    a:光标后
    A:在当前行尾
    o:在当前行之下新开一行
    O:在当前行之上新开一行
    r:替换当前字符
    R:替换当前字符及其后的字符,直至按ESC键
    s:从当前光标位置处开始,以输入的文本替代指定数目的字符
    S:删除指定数目的行,并以所输入文本代替之
    ncw或nCW:修改指定数目的字
    nCC:修改指定数目的行


    删除命令


    ndw或ndW:删除光标处开始及其后的n-1个字
    do:删至行首
    d$:删至行尾
    ndd:删除当前行及其后n-1行
    x或X:删除一个字符,x删除光标后的,而X删除光标前的
    Ctrl+u:删除输入方式下所输入的文本


    搜索及替换命令


    /pattern:从光标开始处向文件尾搜索pattern
    ?pattern:从光标开始处向文件首搜索pattern
    n:在同一方向重复上一次搜索命令
    N:在反方向上重复上一次搜索命令
    :s/p1/p2/g 将当前行中所有p1均用p2替代
    :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
    :g/p1/s//p2/g:将文件中所有p1均用p2替换
    :%s/p1/p2/g 将在全文中把所有p1无用p2替代
    如果你是在写程序,你可能只想替换那些出现在注释中的"four",代 码中的留下。这可有点为难,"c"标志可以让每个目标被替换之前询问你的意见:
    Demo:%s/\<four\>/4/gc

    文本相关操作
     
    J表示,其功能是把光标所在行与下面一行合并为一行
    nJ表示,其功能是把光标所在行与下面n行合并为一行
    :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
    :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
    :n1,n2 d:将n1行到n2行之间的内容删除

  • 相关阅读:
    为什么使用Redis
    [Apache Pulsar] 企业级分布式消息系统-Pulsar快速上手
    [Apache Pulsar] 企业级分布式消息系统-Pulsar入门基础
    JDK源码分析系列---ArrayList和LinkList
    JDK源码分析系列---String,StringBuilder,StringBuffer
    单点登录
    单例模式的几种实现方式
    Bloom’S Taxonomy
    Python 字符串多替换时性能基准测试
    软件开发的生产力vs质量
  • 原文地址:https://www.cnblogs.com/lexus/p/2766500.html
Copyright © 2011-2022 走看看