zoukankan      html  css  js  c++  java
  • vim 精确匹配查找单词【转】

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

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

    整个文件特定字符串的替换
    :%s/old_word/new_word/g

    删除从当前行开始到最后一行的所有内容:
    .,$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 会提示你输入一个表达式,普通的整数运算在此完全有效。


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

    :cn(显示下一个错误)

    :cp(显示上一个错误)

    :cl(列出所有的错误及其编号)

    :cc(跳转到指定编号的错误)

    :copen(打开快速修订窗口,在其中显示所有错误,可在错误上双击鼠标或按回车键跳转至该错误


    执行外部命令
    :!命令

    guw(光标下的单词变为小写)

    gUw(光标下的单词变为大写)

    Vim 在搜索和替换时会对匹配成功的文本进行加亮,在已经完成搜索和替换任务后,这种加亮有时反而会妨碍显示。
    Vim 专门提供一个命令取消这种加亮(直到用户再一次使用搜索或替换命令):“:nohlsearch”。
    建议用户创建一个键盘映射(key mapping)加入到 .vimrc 中,如:
    nmap <F2> :nohlsearch<CR>

  • 相关阅读:
    Yarn的运行原理(执行流程)
    Hive 表类型简述
    hive 表类型
    Hadoop小知识点总结1
    电商交易项目案例
    乘用车辆和商用车辆销售数据分析
    搜狗搜索日志分析系统
    mysql group by 对多个字段进行分组
    group by
    输出GPLT
  • 原文地址:https://www.cnblogs.com/andy071001/p/3331990.html
Copyright © 2011-2022 走看看