VIM 正则表达式搜索字符串

From: http://blog.csdn.net/fengxinze/article/details/6870106

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

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

i<C-N>   向下搜索,补全一个词

i<C-X><C-L>      补全一行。比如你写过一行 for (int i = 0; i < 100; i++),你想再写一模一样的一行,只要输入 for<C-X><C-L> 即可。如果补全出来的不是你想要的那一行,你可以按 <C-P> 或 <C-N> 选择上一个或下一个匹配行
i<C-X><C-F>      在文件系统中搜索,补全一个文件名

如果按 <C-P> 或 <C-N> 补全一个词,在当前文件中没有找到匹配,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之间的数字

    \]   转义字符 ] 



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-cli 3.0集成sass/scss到vue项目

尝鲜使用vue-cli 3.0.0-beta.6&#xff0c;很容易就可以完成scss到vue项目中。 vue-cli 3提供了两种方式集成sass/scss&#xff1a; 创建项目是选择预处理器sass 手动安装sass-loader 创建项目选择预处理器sass $ vue create vuedemo ? Please pick a preset: (Use arrow ke…

技术面试官的一些建议

感叹时光匆匆如水&#xff0c;眨眼睛&#xff0c;已毕业近3年&#xff0c;仿佛还记得大四那年到处面试求Offer的场景&#xff0c;想想那时候的自己&#xff0c;再看看如今&#xff0c;已经从被面试者变成面试官。下面&#xff0c;介绍下自己的做面试官的一些心得&#xff0c;如…

RIP实验总结之一被动接口和单播更新

后续的小实验&#xff1a;RIP实验总结之二RipV2的手动汇总RIP实验总结之一rip v2的认证前言&#xff1a;以前觉得rip只需要学NA的那种水平就行了&#xff0c;但在后来自己的许多实验中不断做过不少rip相关的实验&#xff0c;在这总结一下。实验目的&#xff1a;1) 掌握r…

python 文件和路径操作函数小结

From: http://www.jb51.net/article/21007.htm 1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令&#xff0c;返回为list类型 print os.listdir(..) 2: os.path.walk(path,visit,arg) path &#xff1a;是将要遍历的目录 visit &#xff1a;是一个函数指针…

Taro+react开发(56) 引用第三方icon

<AtIconclassName"que_header_left_icon"prefixClass"icon"value"icon-share"size"16"></AtIcon>

vue中使用better-scroll实现滑动

下载 better-scroll npm install better-scroll --save注意&#xff1a; 必须包含两个大的div&#xff0c;外层和内层div外层div设置可视的大小(宽或者高)-有限制宽或高内层div&#xff0c;包裹整个可以滚动的部分内层div高度一定大于外层div的宽或高(宽度大于外层是水平滚动…

RedHat Enterprise Linux 5下配置Apache+Mysql+Php

第一步&#xff1a;系统与软件的准备 系统版本 redhat enterprise linux v5.3 ,内核版本 2.6.18 第二步&#xff1a;软件包的准备 Apache2软件包&#xff1a;httpd-2.2.13.tar.gz php5软件包&#xff1a;php-5.3.0.tar.gz 第三步, 架设YUM仓库 由于系统连GCC都没有给我们安装&a…

使用pdb调试Python程序

From: http://blog.csdn.net/magicbreaker/article/details/3754733 本文讨论在没有方便的IDE工具可用的情况下&#xff0c;使用pdb调试python程序源码例子例如&#xff0c;有模拟税收计算的程序&#xff1a;#!/usr/bin/python def debug_demo(val): if val < 1600 : print …

【IDE插件】- XCode6代码注释之VVDocumenter

网盘地址&#xff1a;http://pan.baidu.com/s/1dDGQZw1 使用说明&#xff1a; 转&#xff1a;http://jingyan.baidu.com/article/c45ad29cc9e33c051653e210.html转载于:https://www.cnblogs.com/sunrise0707/p/4173217.html

Taro+react开发(57) 图片引入

<View className"img-title"><Imagemode"widthFix"src{item.fileImgs && item.fileImgs[0]}/></View>

改造input

效果图 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><meta http-equiv"X-UA-Compatible" co…

配置Windows Server2008故障转移集群

Abner Kou原创配置Windows Server2008故障转移集群一、 问题描述建立双节点的Windows Server 2008 故障转移集群&#xff0c;为Hyper-v的高可用和SQLServer集群做好准备。二、 配置集群群前的准备1、 每个节点主机配备至少两块网卡&#xff0c;一块用于连接共享存储&#xff0c…

简单调试 Python 程序

From: http://www.vpsee.com/2009/09/debug-python-programwith-pdb/ 在 Python 中也可以像 gcc/gdb 那样调试程序&#xff0c;只要在运行 Python 程序时引入 pdb 模块&#xff08;假设要调试的程序名为 d.py&#xff09;&#xff1a; $ vi d.py #!/usr/bin/pythondef main():…

css3修改input[type=radio]样式

在项目中经常&#xff0c;需要使用单选按钮input[typeradio]&#xff0c;但是浏览器的默认样式可能与我们需要实现的样式差距很大&#xff0c;可以使用css3来实现想要达到的效果&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta cha…

我们应当学会辞旧迎新——《不一样的天空》

乏味的人生&#xff0c;冷清的家庭&#xff0c;枯燥的工作&#xff0c;基本上是现代社会中大部分人的心声&#xff0c;随着时间的流逝&#xff0c;逐渐失去自我&#xff0c;沦为生活的奴隶。而这部电影也以同样的道理告诫我们&#xff0c;不要被一层不变的生活模式所吞噬&#…

在移动端a、input、label等标签点击后会出现背景阴影问题

解决方法&#xff1a; 将a,input,label{-webkit-tap-highlight-color:rgba(255,0,0,0);} 背景设置成透明的就解决了。

【leetcode】Search for a Range

题目描述&#xff1a; Given a sorted array of integers, find the starting and ending position of a given target value. Your algorithms runtime complexity must be in the order of O(log n). If the target is not found in the array, return [-1, -1]. For example…

Taro+react开发(58) toHtml

<View className"que_header_title"><RichText nodes{helpDetail.content}></RichText>{/* <Text className"que_header_title_text">{helpDetail.content}</Text> */}</View>

Python的函数参数传递:传值?引用?

From: http://blog.csdn.net/winterttr/article/details/2590741 作者&#xff1a;winterTTr &#xff08;转载请注明&#xff09; 我想&#xff0c;这个标题或许是很多初学者的问题。尤其是像我这样的对C/C比较熟悉&#xff0c;刚刚进入python殿堂的朋友们 。C/C的函数参数的传…

linux常见紧急情况处理

1&#xff0e;使用急救盘组进行维护急救盘组&#xff08;也称为boot/root盘组&#xff09;&#xff0c;是系统管理员必不可少的工具。用它可以独立地启动和运行一个完整的Linux系统。实际上&#xff0c;急救盘组中的第2张盘上就有一个完整的Linux系统&#xff0c;包括root文件系…