在插入模式下,为了减少重复的击键输入,VIM 提供了若干快捷键,当你要输入某个上下文曾经输入过的字符串时,你只要输入开头若干字符,使用快捷键,VIM 将搜索上下文,找到匹配字符串,把剩下的字符补全,你就不必敲了。这样,编程序时你起多长的变量名都没关系了,:-) 而且还可以减少输入错误。我认为,插入补全是 VIM 最为突出的一项功能。

i   向上搜索,补全一个词。例如,上文中出现过 filename 这个词,当你想再输入 filename 时,只要按 f 即可。假如 VIM 向上搜索,找到以 f 开头的第一个匹配不是 filename,你可以继续按 搜索下一个匹配进行补全。当然,如果你想一次 就成功,你可以多输入几个字符比如 filen 再按 补全

i   向下搜索,补全一个词

i      补全一行。比如你写过一行 for (int i = 0; i < 100; i++),你想再写一模一样的一行,只要输入 for 即可。如果补全出来的不是你想要的那一行,你可以按 或 选择上一个或下一个匹配行

i      在文件系统中搜索,补全一个文件名

如果按 或 补全一个词,在当前文件中没有找到匹配,VIM 将搜索 #include 语句中的文件,而文件的位置将在 path 中搜索。

搜索字符串用的是正规表达式(Regular expression),其中许多字符都有特殊含义:

\        取消后面所跟字符的特殊含义。比如 \[vim\] 匹配字符串“[vim]”

[]       匹配其中之一。比如 [vim] 匹配字母“v”、“i”或者“m”,[a-zA-Z] 匹配任意字母

[^]      匹配非其中之一。比如 [^vim] 匹配除字母“v”、“i”和“m”之外的所有字符

.        匹配任意字符

*        匹配前一字符大于等于零遍。比如 vi*m 匹配“vm”、“vim”、“viim”……

\+       匹配前一字符大于等于一遍。比如 vi\+m 匹配“vim”、“viim”、“viiim”……

\?       匹配前一字符零遍或者一遍。比如 vi\?m 匹配“vm”或者“vim”

^        匹配行首。例如 /^hello 查找出现在行首的单词 hello

$        匹配行末。例如 /hello$ 查找出现在行末的单词 hello

\(\)     括住某段正规表达式

\数字    重复匹配前面某段括住的表达式。例如 \(hello\).*\1 匹配一个开始和末尾都是“hello”,中间是任意字符串的字符串

对于替换字符串,可以用“&”代表整个搜索字符串,或者用“\数字”代表搜索字符串中的某段括住的表达式。

举一个复杂的例子,把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法:

:%s/abc\(.*\)xyz/xyz\1abc/g

:%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g

其它关于正规表达式搜索替换的更详细准确的说明请看 :help pattern

例如:在文本中搜索所有包含amount大于0的以[ ] 括住的字符串的行,如 “amount[123]“,  ”amount[200]“ 等:

首先按 :进入命令 模式,然后输入下面的串再回车开始查找:/amount\[[1-9]\([0-9]*\)\+\]

解释如下:

/  表示进行串搜索, 其它字符为 正则表达式的内容

amount  表示匹配串包含amount

\[  转义字符,表示匹配左中括号 [

[1-9]  表示匹配一位1到9之间任何数字

\(  \)   转义的左右括号,表示括住某段正则表达式,

\+  转义字符+,表示前面一个字符或一个正则串重复1次或多次,所以,\([0-9]*\) 表示 任意个0-9之间的数字

\]   转义字符 ]

linux的vim查找的正则表达式,VIM 正则表达式搜索字符串相关推荐

  1. python 搜索pdf文件中的文字_使用python查找pdf文档中搜索字符串位于哪一页

    我终于发现pyPDF可以帮上忙.我把它寄出去,以防它能帮助别人. (1)定位字符串的函数def fnPDF_FindText(xFile, xString): # xfile : the PDF fi ...

  2. 菜鸟教程python正则表达式_Python 正则表达式

    Python 正则表达式 正则表达式是搜索模式形成的字符序列. 它可用于检查字符串是否与某种字符匹配的搜索模式. RegEx模块 Python有一个内置的包re,可以用来处理正则表达式. 导入re模块 ...

  3. [倚天屠龙记] vim 查找与替换(正则表达式)

    [倚天屠龙记] vim 查找与替换(正则表达式) {{{ 正则表达式是文本处理领域中的一个强大的工具,它可以让文本处理的能力呈指数级的提升,如果一款文本编辑器不支持正则表达式,那么它就算不上是一个现代 ...

  4. VIM 正则表达式搜索字符串

    From: http://blog.csdn.net/fengxinze/article/details/6870106 在插入模式下,为了减少重复的击键输入,VIM 提供了若干快捷键,当你要输入某个 ...

  5. linux vim 怎么查找,linux下vim 查找命令

    linux下vim 查找命令: /text --查找text, 按n查找下一个, N查找上一个 ?text --查找text(反向查找), 按n查找下一个, N查找上一个 */# --查找光标当前的单 ...

  6. linux vi查找字符串查找字符串,vim查找字符串的方法_vim查找替换的方法

    vim是什么? Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.VIM是自由软件. Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自 ...

  7. centos7 vim查找_如何在 Vim/Vi 中快速查找和替换文本内容

    Vim 是 Vi 多模式命令行编辑器的加强版,通常默认的Unix或Linux系统中都默认自带Vi命令编辑器.当然,为了更好的体验,如果系统默认没有安装Vim,建议安装Vim. 通过本文的讲解,你将学会 ...

  8. [倚天屠龙记] vim 查找与替换(简单查找)

    [倚天屠龙记] vim 查找与替换(简单查找) {{{         搜索与替换是文本编辑器的最重要的功能之一,也是其能力的一个缩影.         接下来用几节的篇幅重点叙述vim的查找与替换功 ...

  9. 在Linux下使用Vi进阶编辑器Vim编译C/C++

    Vim – 编辑器之神 历史与争端 Vim 的前身是 vi,一个简洁但是略有不足的编辑器,但是从 vi 开始,编辑器的模式区分和唯快不破的思想就已经体现的很到位了.Vim 即是 vi improved ...

最新文章

  1. Python递归获取文件夹下面所有文件名字:
  2. 使用Jmeter至WebService压力测试
  3. 怎样才算熟悉python-怎样才算学会Python
  4. c+和python哪个快-C/C++比python快是什么意思?
  5. Fescar 全局锁介绍
  6. 第四届西安邮电大学acm-icpc校赛 流浪西邮之寻找火石碎片 多体积条件背包
  7. Electron学习-创建一个程序
  8. Linux信号量之用户态信号量(Posix信号量->无名信号量)
  9. 在ubuntu用arm ds-5社区版配合linaro交叉编译工具开发android linux应用
  10. 2020年阴阳师服务器维护,2020阴阳师2月19日更新官方公告及内容汇总
  11. 3d制作中需要注意的问题_珠宝首饰工艺篇-戒指3D造型设计制作注意要点
  12. 人月神话读感/摘抄 四
  13. 2 如何设置窗口title_如何正确的知晓生僻字发音?无需字典查询,2步手机设置轻松搞定...
  14. 初解vue脚手架vue-cli,及demo示例(一)
  15. 以前看书时记得一些笔记(二),很早了,现在再看都有些看不懂了
  16. 附件 计算机 丢失,帮你找回Win7开始菜单附件丢失的工具
  17. 阿里云 CentOS 7.4 下部署基于 Node.js 的微信小程序商城
  18. Fliqlo:一款精致高逼格的翻页时钟屏保软件
  19. 国外计算机核心期刊易读,国内英语写作研究现状的文献综述——对十大外语类核心期刊近五年(2012-2016)的统计分析...
  20. 深入理解机器学习——类别不平衡学习(Imbalanced Learning):常用技术概览

热门文章

  1. USACO Broken Necklace模拟
  2. JZOJ5937. 【NOIP2018模拟10.30】斩杀计划
  3. java mysql 项目_mysql数据库如何实现与Java项目连接
  4. Windows10搜索不到共享电脑的四种解决方法
  5. LabVIEW编程LabVIEW开发如何沟通需求
  6. 计算机图像识别在食品中的应用,舌尖上的AI,人工智能在食品中的应用
  7. xp系统无法访问服务器共享文件夹,彻底解决局域网XP系统无法访问Win7或Win8共享文件(文件夹)图文教程...
  8. 初学者怎么用js写选项卡_初学者极客:我的PC是否需要图形卡?
  9. opencv基础篇3讲(二)-色彩空间转换像素运算ROI与泛洪填充
  10. javascript的递归函数