• vim小技巧


    vim中字符串出现次数的统计
    在所有行中查找 字符串 出现的次数

    :%s/字符串//gn
    :%s/字符串/&/gn
    在m和n行之间查找 字符串 出现的次数
    :m,ns/字符串/&/gn

    C-r (register) 在insert模式下插入寄存器对应的内容
    在insert模式下,C-r (register) 插入register里的内容,一个有趣的reg是”=”. 假设你想输入123K的具体字节数,不用打开计算器,试试这个”=1024*123″,”125952″就出来了!

    * 向下查找当前光标所在单词或字符串
    g* 查找则不限制whole word。 区别:比如在if这个单词上按*键则查找单词if,按g*键则查找if。

    # 向上查找当前光标所在单词或字符串
    g# 查找则不限制whole word。 区别:比如在if这个单词上按#键则查找单词if,按g#键则查找if。

    删掉偶数行
    :g/^/+1 d 或 %norm jdd

    C-o (fast out, fast in)
    在insert模式下,用C-o后可以执行一个normal命令,然后立即返回insert模式,省去了用ESC的麻烦。

    [I (fast grep )
    [I 显示文件中包含光标下的所有行。我常用来浏览某个id在程序中的引用情况。 还有很多相关的命令::h include-search

    删除文件中所有的空行
    :g/^s*$/d

    去掉所有的行尾空格
    :%s/s+$//

    去掉所有的“//”开头的注释
    :%s#s*//.*##

    去掉所有的“/* */”注释
    :%s#s*/*\_.{-}*/s*# #g
    (这个略有点复杂了,用到了几个不太常用的 Vim 正则表达式特性。“\_.”匹配包含换行在内的所有字符;“{-}”表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好;标志“g”表示一行里可以匹配和替换多次。替换的结果是个空格的目的是保证像“int/* space not necessary around comments */main()”这样的表达式在替换之后仍然是合法)

    精确匹配查找单词
    如果你输入 “/the”,你也可能找到 “there”。要找到以 “the” 结尾的单词,可以用:
    /the> “>” 是一个特殊的记号,表示只匹配单词末尾。类似地,”<” 只匹配单词的开头。
    这样,要匹配一个完整的单词 “the”,只需:/<the>

    特殊的“寄存器”:”=”
    在插入模式或命令模式中,键入“Ctrl-R=”,Vim 会提示你输入一个表达式,普通的整数运算在此完全有效。

    单词的自动完成
    Ctrl+p
    比如,你前面使用了一个很长的变量名,叫 aLongVariable,下面你在输入时,就不用完整键入了。很可能,你只需要键入“aL”,然后按下“Ctrl-P”(向前搜索可匹配的单词并完成)就可以得到完整的变量名(没有得到想要的结果的话,多按几下“Ctrl-P”;或者前面多输入几个字符,如“aLongV”)。类似的命令还有“Ctrl-N”(向后搜索可匹配的单词并完成)、“Ctrl-X Ctrl-L”(搜索可匹配的行并完成)、“Ctrl-X Ctrl-F”(搜索可匹配的文件名并完成)等,具体可参看“:help ins-completion”。

    Make 和 grep
    Make 和grep 应当算是 Unix 世界里无人不晓的基本工具了吧。很自然的,Vim 对它们有着特殊的支持。该支持主要通过访问一个特殊的快速修订窗口(quickfix window)来实现。直接在 Vim 的命令模式里输入相应的 make 或 grep 命令(如“:grep foo *.c”)即可将命令的执行结果放入该窗口,同时根据返回的结果跳转到第一个错误(make 的情况;在使用 grep 时是匹配成功之处)。以下是常用的“快速修订”命令:

    :cn(显示下一个错误)
    :cp(显示上一个错误)
    :cl(列出所有的错误及其编号)
    :cc(跳转到指定编号的错误)
    :copen(打开快速修订窗口,在其中显示所有错误,可在错误上双击鼠标或按回车键跳转至该错误

    执行外部命令
    :!命令

    单词大小写转换
    guw(光标下的单词变为小写)
    gUw(光标下的单词变为大写)

  • 相关阅读:
    云计算
    uc/xi
    互联网 2.0概念
    java连接数据库
    记录一下安装 mysql 的踩坑之路
    1
    Linux介绍与基本必知命令
    Web课程Linux命令统计
    7——条件判断、三目运算、条件循环、迭代循环
    6——散列类型、运算符优先级、逻辑运算
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4019196.html
Copyright © 2020-2023  润新知