利用 Vim 的高级替换功能,查找和替换复杂模式 (vim 使用技巧)
正则表达式
正则表达式是一种强大的模式匹配语言,用于查找和替换文本中的复杂模式。正则表达式提供了许多特殊的字符和元字符,可以匹配各种文本模式。以下是正则表达式常用的元字符:`.` 匹配任意单个字符`` 匹配前面的元素 0 次或多次`+` 匹配前面的元素 1 次或多次`?` 匹配前面的元素 0 次或 1 次`{n}` 匹配前面的元素 n 次`\{m,n}` 匹配前面的元素 m 次到 n 次`^` 匹配字符串的开始`$` 匹配字符串的结束`[]` 匹配字符类`()` 匹配一个子表达式Vim 中的高级替换
Vim 除了提供基本的替换功能外,还提供了高级替换功能,允许用户使用正则表达式查找和替换复杂模式。高级替换语法如下::%s/pattern/replacement/flags其中:`%` 表示在整个文件中进行替换。如果要仅在当前行进行替换,可以使用 `.` 代替。`pattern` 是要查找的正则表达式模式。`replacement` 是要替换的文本。可以使用 `\n` 表示换行符。`flags` 是可选的标志,用于控制替换行为。以下是一些常用的标志:`g` 替换所有匹配项`c` 确认每个替换操作`i` 忽略大小写`v` 显示替换信息查找和替换复杂模式
下面是一些使用 Vim 的高级替换查找和替换复杂模式的示例:示例 1:替换所有以 "foo" 开头的行
:%s/^foo/bar/g示例 2:删除所有空行
:%s/^$/ /g示例 3:将所有 "foo" 替换为 "bar",忽略大小写
:%s/foo/bar/gi示例 4:将所有以数字结尾的行替换为 "数字行"
:%s/[0-9]$/数字行/g示例 5:将所有单词中间的大写字母替换为小写字母
:%s/\<[A-Z]\>/\l&/g高级替换技巧
除了上述基本用法外,Vim 的高级替换还提供了一些高级技巧,可以进一步提升替换功能:使用捕获组:正则表达式可以定义捕获组,用于匹配子模式。可以使用 `\n` 引用捕获组中的文本。使用条件替换:Vim 允许使用条件语句控制替换行为。可以使用 `?` 表示条件表达式,然后使用 `:` 分隔条件语句和替换表达式。使用宏:Vim 的宏功能可以录制和重复替换操作。可以使用 `qa` 开始录制宏,然后使用 `q` 结束录制。可以使用 `@a` 播放宏。结论
Vim 的高级替换功能为文本处理和编辑提供了强大的工具。通过使用正则表达式和高级技巧,用户可以查找和替换复杂模式,以高效和准确的方式修改文本。vim操作技巧
不知不觉使用vim已经有一些时间了,也算得上真正掌握使用技巧了吧。 想不起来当初为什么去学习这个编辑器,也不记得怎么学会使用编辑文件,只记得当初按完所有的键盘按键都没有退出vim。 一颗种子要经过多少风雨才能长成参天大树,一条小溪要经过多少高山河流才能汇入大海。 我们平常学习一样东西,要经过多少困难,多少挫折,只有自己最清楚。 普通编辑器都可以直接打开文件进行编辑、保存、使用快捷键等等,vim也具备这些功能,但是有些功能要在特定模式下才能使用。 也是因为这些模式,让vim学习路线变得特别比较陡峭。 vim具有多种模式,每种模式都有特定功能,有时你需要某些功能时,特意切换到指定模式下操作。 使用键盘就可以随意切换模式,让vim不依赖鼠标操作,使用最小化组合键的操作,编辑效率大大提高。 这个模式主要功能,可以使用移动命令,扩大高亮的文本区域。 输入命令将直接作用于选中文本区域。 这就相当于你用鼠标选中一段文本区域,可以使用可以使用命令进行,复制、剪切、修改操作,但是vim并不需要鼠标。 这个模式要在可视模式下才能进入,可以直接使用退格键或者空格键删除选中文本区域,或者直接输入新的文本,替换选中高亮区域进入插入模式。 平常在使用vim主要是在普通模式、插入模式、可视模式、命令模式进行操作,掌握这里基本就可以熟悉使用vim了。 掌握这些快捷键,移动光标得时候,手机基本不会离开核心键盘区,有没有像 w , a , s , d 移动角色的感觉🙂。 要想编写文本内容,还必须在插入模式下进行操作,以下命令由普通模式进入到插入模式d删除字符(delete), d 本身没有任何涵义,但是它可以跟其他命令组合,完成一些快速操作。 <font size=5>操作符 + 动作命令 = 操作</font> d<span>{motion}</span> 命令可以对一个字符 dl 、一个完整单词 daw 或 一整个段落 dap 进行操作,它作用的范围由动作命令决 定。 c<span>{motion}</span>、y<span>{motion}</span> 以及其他一些命令也类似,它们被统称为操作符(operator)。 <center>Vim的操作符命令</center> 看着上面删除操作,是不是很容易理解操作符 + 动作命令 的模式,比如我们已经知道 daw 删除整个单词, gU 反转大写,我们就可以使用 gUaw 反转整个单词, gUap反转整个段落大写 由于vim中copy快捷键已经被change修改占用了,只能使用 y 代表复制(yank),粘贴(put)使用 p , d 其实是将内容剪切到寄存器中,剪切实现删除操作。 ddp看起来是将两行位置互换,其实先剪切当前行到寄存器中, p 粘贴到光标下的位置。 主要记住使用命令 y+ 动作指令 或者d+ 动作指令,都是将文本暂存到寄存器中,使用 p或者 P进行粘贴。 进行一个小demo练习,将变量field替换下面的函数参数foo。 思路: 先使用 yw 复制field字段,下移动foo中, dw 删除foo, P 粘贴。 但是你会发现粘贴结构居然还是foo。 这是因为 dw 将删除文本放入寄存器中,覆盖了上面copy的变量。 我们平常复制,剪切的文本都会暂存再无名寄存器中。 在vim中的删除、复制、粘贴都是使用寄存器,可以使用 {registerName} 方式命名寄存器。 平时我们使用 dd , yy 命令,不指名寄存器名称默认使用无名寄存器。 倘若没有指定要使用的寄存器,Vim将缺省使用无名寄存器,它可以用双引号表示(参见 :h quote_quote )。 无名寄存器可以使用 表示,比如 yy相当于 yy , p相当于 p [0-9]表示数字寄存器,数字越小表示最早在寄存器内容。 例如 0 表示第一个进入寄存器文本, 1 表示第二个进入寄存器内容,类似值栈结构,先进后出排列。 可以使用 :reg查看寄存器中内容。 在win系统中,可以在任意地方Ctrl c复制文本,vim是否可以粘贴非vim中复制内容?当然是可以的。 + 表示系统寄存器,可以读取系统vim之外的系统粘贴板中的内容,可以粘贴内容,复制到系统粘贴板中去。 ubuntu上需要安装vim-gnome,才可以正常使用系统寄存器。 使用粘贴命令前面+寄存器名称,就可以直接使用专用寄存器中的内容了,例如 +p 直接粘贴系统剪贴板中的内容。 在插入模式使用 <Ctrl r>+ 寄存器名称粘贴字符文本。 例如可以使用 <Ctrl r> 粘贴无名寄存器中内容。 本文章有部分内容参考《vim实用技巧第2版》 ,有兴趣的同学可以买一个本来看看,真的很不错哦!
linux在vim下怎么批量替换或者注释?
方法一 块选择模式
插入注释:
用v进入virtual模式
用上下键选中需要注释的行数
按Control+v(win下面ctrl+q)进入列模式
按大些“I”进入插入模式,输入注释符“#”或者是//,然后立刻按下ESC(两下)
取消注释:
Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意// 要选中两个,选好之后按d即可删除注释
方法二 替换命令
批量注释:
使用下面命令在指定的行首添加注释::起始行号,结束行号s/^/注释符/g
取消注释:
:起始行号,结束行号s/^注释符//g
实例展示:
在27 - 30行添加 // 注释:27,30s#^#//#g
在27 - 30行删除 // 注释:27,30s#^//##g
在10 - 20行添加 # 注释:10,20s/^/#/g在10 - 20行删除 # 注释:10,20s/^/#/g注意例子中正则的分割符使用的是相反的符号,如果匹配// 那么使用 #作分隔符这样不需要对/作转义处理,节省输入次数。
方法二 替换命令
批量注释:
使用下面命令在指定的行首添加注释::起始行号,结束行号s/^/注释符/g
取消注释:
:起始行号,结束行号s/^注释符//g
实例展示:
在27 - 30行添加 // 注释:27,30s#^#//#g
在27 - 30行删除 // 注释:27,30s#^//##g
在10 - 20行添加 # 注释:10,20s/^/#/g在10 - 20行删除 # 注释:10,20s/^/#/g注意例子中正则的分割符使用的是相反的符号,如果匹配// 那么使用 #作分隔符这样不需要对/作转义处理,节省输入次数。
vim替换指定内容
题主是否想询问“vim替换如何指定内容”?1、首先打开Vim编辑器并进入要编辑的文件。 2、其次在命令模式下(默认情况下,按下Esc键即可进入命令模式),输入“替换掉的内容”并按下回车键。 3、然后又在第二个括号中输入要替换的内容,再输入要替换成的新内容,然后按下回车键。 4、最后在第三个括号中输入想要的正则表达式模式(可选),最后按下回车键。
若对本页面资源感兴趣,请点击下方或右方图片,注册登录后
搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源
如有其他疑问,请咨询右下角【在线客服】,谢谢支持!
相关文章
- 五笔字型输入法的未来发展趋势:人工智能与智能输入系统的结合 (五笔字型输入法字根表口诀)
- 五笔字型输入法学习指南:从入门到精通的进阶之路 (五笔字型输入法)
- 五笔字型输入法与其他中文输入法的对比:探索不同的输入方式 (五笔字型输入法字根表口诀)
- 五笔字型输入法在不同行业的应用:从办公到创作,广泛覆盖 (五笔字型输入法)
- 五笔字型输入法进阶技巧:提升输入效率的秘诀 (五笔字型输入法)
- 五笔字型输入法的编码方式与字根构成:解构输入法背后的奥秘 (五笔字型输入法)
- 五笔字型输入法的起源与发展:从繁琐到高效 (五笔字型输入法字根表口诀)
- 五笔字型输入法:高效流畅的中文输入利器 (五笔字型输入法)
- QQ 新账号注册全攻略:避免踩坑,轻松创建新账号 (QQ新账号注册默认生日)
- 如何注册 QQ 号码?新手必备的注册指南 (如何注册qq邮箱)
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~