regex - VIM:如何为搜索和替换保留大小写

标签 regex vim intellij-idea

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
Case preserving substitute in Vim



是否可以在保留搜索词大小写的 vim 中进行搜索和替换?这是我想念的 intelliJ 中的一个有用功能。

例如,类似:
:s/[uU]ser/[pP]erson/ (obviously, this doesn't work)

这样:
user->person
User->Person

另一个要保留多个字符的示例:
:s/[mM]y[uU]ser/[tT]his[pP]erson/g

这样:
myuser->thisperson
myUser->thisPerson
MyUser->ThisPerson

最佳答案

有几种方法可以采取。如果你想坚持使用基本的 Vim 功能,你可以做类似的事情

:%s/[uU]ser/\=submatch(0) ==# 'user' ? 'person' : 'Person'/g

如果你有使用 Perl 绑定(bind)构建的 Vim,你可以使用 :perldo .根据匹配/替换单词的长度以及您要保留的大小写在哪里,这可能会或可能不会起作用。
:perldo s/(user)/"\L$1" ^ $1 ^ 'person'/ieg

或者您可以使用 various 之一scripts实现这样的功能。

关于regex - VIM:如何为搜索和替换保留大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1916195/

相关文章:

grails - 如何在 IntelliJ IDEA 中进行 Grails 3 集成测试

javascript - ?前面的标记不可量化

python - 如何让 PLY 忽略正则表达式的大小写?

vim - 将 VIM 恢复到默认状态

grails - 用于假人的Grails安装

java - 如何解决 "inner assignments should be avoided"

regex - nginx将所有白名单重写为index.php

regex - Perl 6 语法与我认为的不匹配

macos - 如何在vim中映射mac命令键?

linux - vim中的光标可以改成下划线吗?