Linux 如何在vim中更改整个文档中相同单词的大小写?

Linux 如何在vim中更改整个文档中相同单词的大小写?,linux,vim,replace,case-sensitive,Linux,Vim,Replace,Case Sensitive,假设我在一个文件的多个地方有“abc”。 g~iw only只会在一个地方(光标下的单词)将其更改为“ABC”。 但如果我想在整个文档中替换它,vim中是否有一行命令 或者我需要使用sed吗?有很多方法可以做到这一点。对于这项具体任务,我更喜欢的方法是 这将用第二个字符串“abc”替换第一个字符串“abc”的每一行中出现的每一次 (感谢rampion指出我没有选择带“”的单词) 如果光标已位于要替换的单词上,则可以按“”并省略第一个字符串: :%s//ABC/g 根据Sergio Araujo

假设我在一个文件的多个地方有“abc”。 g~iw only只会在一个地方(光标下的单词)将其更改为“ABC”。 但如果我想在整个文档中替换它,vim中是否有一行命令


或者我需要使用sed吗?

有很多方法可以做到这一点。对于这项具体任务,我更喜欢的方法是

这将用第二个字符串“abc”替换第一个字符串“abc”的每一行中出现的每一次

(感谢rampion指出我没有选择带“”的单词) 如果光标已位于要替换的单词上,则可以按“”并省略第一个字符串:

:%s//ABC/g
根据Sergio Araujo的评论,为了使整个搜索过程更加健壮,可以在搜索词中添加边界,以防止只包含字符串的错误匹配

:%s/\<abc\>/\U&/g 
:%s/\/\U&/g

通过\U转换为大写并使用上一次搜索将其应用于

有多种方法。对于这项具体任务,我更喜欢的方法是

这将用第二个字符串“abc”替换第一个字符串“abc”的每一行中出现的每一次

(感谢rampion指出我没有选择带“”的单词) 如果光标已位于要替换的单词上,则可以按“”并省略第一个字符串:

:%s//ABC/g
根据Sergio Araujo的评论,为了使整个搜索过程更加健壮,可以在搜索词中添加边界,以防止只包含字符串的错误匹配

:%s/\<abc\>/\U&/g 
:%s/\/\U&/g

使用\U转换为大写并使用上一次搜索将其应用于

阅读此处关于替换:阅读此处关于替换:我们应该使用单词边界来避免与其他单词的部分匹配,并使用替换的小技巧:
:%s/\/\U&/g
\U
表示大写,
&
表示最后一次搜索。“如果光标已经在单词上,可以点击
*
将单词放入模式寄存器,然后使用
%s//ABC/g
。仅将光标放在单词上是不够的。我们应该使用单词边界来避免与其他单词的一部分相匹配,并避免一些替换技巧:
:%s/\/\U&/g
\U
表示大写,
&
表示最后一次搜索。“如果光标已经在单词上,可以点击
*
将单词放入模式寄存器,然后使用
%s//ABC/g
。仅仅把光标放在单词上是不够的。