regex - VIM:选择一个正则表达式,然后应用一个命令

标签 regex vim text

我想将一大组标识符从小写更改为大写。我有一个文件,其中包含许多(数百个)以 q_ 开头的唯一标识符。 .我构建了一个定义这个匹配的正则表达式:(q_\w*)现在我想申请 ~命令使它们全部大写(它们当前是小写)。我觉得 VIM 完全有能力做到这一点,但我的技能还没有,你能帮忙吗?

最佳答案

如果要大写整个标识符,对于文件中的每个标识符,请使用以下替换命令:

%s/q_\w\+/\U&/g

这里的诀窍是 &在替换模式中,它引用了整个匹配项。这将替代例如q_identifier1Q_IDENTIFIER1 .

如果您只想大写 q ,那么你可以使用:
%s/q_\(\w\+\)/Q_\1/g

现在 q_identifier1将改为:Q_identifier1
如果你想大写除 q_ 之外的所有内容,然后使用:
%s/q_\(\w\+\)/q_\U\1/g

现在 q_identifier1将改为:q_IDENTIFIER1

关于regex - VIM:选择一个正则表达式,然后应用一个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12715101/

相关文章:

JavaScript 正则表达式也可以匹配数字

vim - 在 Vim 中搜索并替换每行中第一次出现空格之后的所有字符?

vim - 我如何CamelCase启用Vim搜索

javascript - 正则表达式,搜索多个换行符

ruby - 在 Shoes.app 中使文本透明

Java 字符串 -> 两个数字

javascript - 正则表达式匹配完整单词,但在第一次失败时完全不匹配

python - 使用正则表达式隔离文件名中的信息

linux - 如何使 z= 在 vi​​m 拼写检查中看起来像 ctrl-x s

text - 如何在 Vim 中将每行的前两个大写字符更改为小写?