zoukankan      html  css  js  c++  java
  • 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(光标下的单词变为大写)

  • 相关阅读:
    P1144 最短路计数 题解 最短路应用题
    C++高精度加减乘除模板
    HDU3746 Teacher YYF 题解 KMP算法
    POJ3080 Blue Jeans 题解 KMP算法
    POJ2185 Milking Grid 题解 KMP算法
    POJ2752 Seek the Name, Seek the Fame 题解 KMP算法
    POJ2406 Power Strings 题解 KMP算法
    HDU2087 剪花布条 题解 KMP算法
    eclipse创建maven项目(详细)
    maven的作用及优势
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4019196.html
Copyright © 2011-2022 走看看